This is an automated email from the ASF dual-hosted git repository.

hvanhovell pushed a commit to branch branch-3.4
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-3.4 by this push:
     new cb1fb7a2a47 [SPARK-42465][CONNECT] ProtoToPlanTestSuite should use 
analyzed plans instead of parsed plans
cb1fb7a2a47 is described below

commit cb1fb7a2a472d5f25cd77f0f1dcdc7055243982d
Author: Herman van Hovell <her...@databricks.com>
AuthorDate: Thu Feb 16 18:33:10 2023 -0400

    [SPARK-42465][CONNECT] ProtoToPlanTestSuite should use analyzed plans 
instead of parsed plans
    
    ### What changes were proposed in this pull request?
    This makes `ProtoToPlanTestSuite` use analyzed plans instead of parsed 
plans.
    
    ### Why are the changes needed?
    This is to increase the fidelity of the `ProtoToPlanTestSuite`, especially 
since we are going to be adding functions. Functions are special because the 
spark connect planner leaves them unresolved, the actual binding only happens 
in the analyzer. Without running the analyzer we would not know if the bindings 
are correct.
    
    ### Does this PR introduce _any_ user-facing change?
    No
    
    ### How was this patch tested?
    It is a test change.
    
    Closes #40056 from hvanhovell/SPARK-42465.
    
    Authored-by: Herman van Hovell <her...@databricks.com>
    Signed-off-by: Herman van Hovell <her...@databricks.com>
    (cherry picked from commit 64aa84b21c7664205a060933d8d9c3067da8218b)
    Signed-off-by: Herman van Hovell <her...@databricks.com>
---
 .../apache/spark/sql/PlanGenerationTestSuite.scala |  16 ++++-----
 .../explain-results/alias_string.explain           |   3 +-
 .../explain-results/alias_symbol.explain           |   3 +-
 .../query-tests/explain-results/apply.explain      |   4 +--
 .../query-tests/explain-results/as_string.explain  |   3 +-
 .../query-tests/explain-results/as_symbol.explain  |   3 +-
 .../query-tests/explain-results/coalesce.explain   |   2 +-
 .../query-tests/explain-results/col.explain        |   4 +--
 .../query-tests/explain-results/colRegex.explain   |   4 +--
 .../query-tests/explain-results/column_add.explain |   4 +--
 .../explain-results/column_alias.explain           |   4 +--
 .../query-tests/explain-results/column_and.explain |   4 +--
 .../explain-results/column_apply.explain           |   4 +--
 .../explain-results/column_as_multi.explain        |   5 +--
 .../column_as_with_metadata.explain                |   4 +--
 .../query-tests/explain-results/column_asc.explain |   4 +--
 .../explain-results/column_asc_nulls_first.explain |   4 +--
 .../explain-results/column_asc_nulls_last.explain  |   4 +--
 .../explain-results/column_between.explain         |   4 +--
 .../explain-results/column_bitwiseAND.explain      |   4 +--
 .../explain-results/column_bitwiseOR.explain       |   4 +--
 .../explain-results/column_bitwiseXOR.explain      |   4 +--
 .../explain-results/column_cast.explain            |   4 +--
 .../explain-results/column_contains.explain        |   4 +--
 .../explain-results/column_desc.explain            |   4 +--
 .../column_desc_nulls_first.explain                |   4 +--
 .../explain-results/column_desc_nulls_last.explain |   4 +--
 .../explain-results/column_divide.explain          |   4 +--
 .../explain-results/column_dropFields.explain      |   4 +--
 .../explain-results/column_endsWith.explain        |   4 +--
 .../explain-results/column_eqNullSafe.explain      |   4 +--
 .../explain-results/column_equals.explain          |   4 +--
 .../query-tests/explain-results/column_geq.explain |   4 +--
 .../explain-results/column_getField.explain        |   4 +--
 .../explain-results/column_getItem.explain         |   4 +--
 .../query-tests/explain-results/column_gt.explain  |   4 +--
 .../explain-results/column_ilike.explain           |   4 +--
 .../explain-results/column_isNaN.explain           |   4 +--
 .../explain-results/column_isNotNull.explain       |   4 +--
 .../explain-results/column_isNull.explain          |   4 +--
 .../explain-results/column_isin.explain            |   4 +--
 .../query-tests/explain-results/column_leq.explain |   4 +--
 .../explain-results/column_like.explain            |   4 +--
 .../query-tests/explain-results/column_lt.explain  |   4 +--
 .../explain-results/column_modulo.explain          |   4 +--
 .../explain-results/column_multiply.explain        |   4 +--
 .../query-tests/explain-results/column_not.explain |   4 +--
 .../explain-results/column_not_equals.explain      |   4 +--
 .../query-tests/explain-results/column_or.explain  |   4 +--
 .../explain-results/column_rlike.explain           |   4 +--
 .../explain-results/column_star.explain            |   4 +--
 .../column_star_with_target.explain                |   4 +--
 .../explain-results/column_startsWith.explain      |   4 +--
 .../explain-results/column_substr.explain          |   4 +--
 .../explain-results/column_subtract.explain        |   4 +--
 .../explain-results/column_unary_minus.explain     |   4 +--
 .../explain-results/column_when_otherwise.explain  |   4 +--
 .../explain-results/column_withField.explain       |   4 +--
 .../query-tests/explain-results/crossJoin.explain  |   4 +--
 .../query-tests/explain-results/describe.explain   |  12 +++----
 .../query-tests/explain-results/distinct.explain   |   4 +--
 .../explain-results/dropDuplicates.explain         |   4 +--
 .../dropDuplicates_names_array.explain             |   4 +--
 .../dropDuplicates_names_seq.explain               |   4 +--
 .../explain-results/dropDuplicates_varargs.explain |   4 +--
 .../explain-results/drop_multiple_column.explain   |   4 +--
 .../explain-results/drop_multiple_strings.explain  |   2 +-
 .../explain-results/drop_single_column.explain     |   4 +--
 .../explain-results/drop_single_string.explain     |   4 +--
 .../query-tests/explain-results/except.explain     |   4 +--
 .../query-tests/explain-results/exceptAll.explain  |   4 +--
 .../query-tests/explain-results/filter.explain     |   4 +--
 .../explain-results/filter_expr.explain            |   4 +--
 .../explain-results/function_col.explain           |   4 +--
 .../explain-results/function_lit.explain           |   4 +--
 .../explain-results/function_max.explain           |   4 +--
 .../query-tests/explain-results/hint.explain       |   4 +--
 .../query-tests/explain-results/intersect.explain  |   4 +--
 .../explain-results/intersectAll.explain           |   4 +--
 .../explain-results/join_condition.explain         |   8 +++--
 .../explain-results/join_inner_condition.explain   |   8 +++--
 .../join_inner_no_condition.explain                |   4 +--
 .../join_inner_using_multiple_col_array.explain    |   7 ++--
 .../join_inner_using_multiple_col_seq.explain      |   7 ++--
 .../join_inner_using_single_col.explain            |   7 ++--
 .../join_using_multiple_col_array.explain          |   7 ++--
 .../join_using_multiple_col_seq.explain            |   7 ++--
 .../explain-results/join_using_single_col.explain  |   7 ++--
 .../query-tests/explain-results/limit.explain      |   2 +-
 .../explain-results/melt_no_values.explain         |   4 +--
 .../explain-results/melt_values.explain            |   4 +--
 .../query-tests/explain-results/offset.explain     |   2 +-
 .../explain-results/orderBy_columns.explain        |   4 +--
 .../explain-results/orderBy_strings.explain        |   4 +--
 .../query-tests/explain-results/read.explain       |   2 +-
 .../query-tests/explain-results/read_csv.explain   |   2 +-
 .../query-tests/explain-results/read_json.explain  |   2 +-
 .../query-tests/explain-results/read_orc.explain   |   2 +-
 .../explain-results/read_parquet.explain           |   2 +-
 .../query-tests/explain-results/read_path.explain  |   2 +-
 .../query-tests/explain-results/read_table.explain |   3 +-
 .../query-tests/explain-results/read_text.explain  |   2 +-
 .../explain-results/repartition.explain            |   2 +-
 .../repartitionByRange_expressions.explain         |   4 +--
 ...itionByRange_num_partitions_expressions.explain |   4 +--
 .../repartition_expressions.explain                |   4 +--
 .../repartition_num_partitions_expressions.explain |   4 +--
 .../explain-results/sample_fraction_seed.explain   |   2 +-
 .../sample_withReplacement_fraction_seed.explain   |   2 +-
 .../query-tests/explain-results/select.explain     |   4 +--
 .../query-tests/explain-results/selectExpr.explain |   4 +--
 .../explain-results/select_strings.explain         |   4 +--
 .../sortWithinPartitions_columns.explain           |   4 +--
 .../sortWithinPartitions_strings.explain           |   4 +--
 .../explain-results/sort_columns.explain           |   4 +--
 .../explain-results/sort_strings.explain           |   4 +--
 .../query-tests/explain-results/sql.explain        |   2 +-
 .../query-tests/explain-results/summary.explain    |  10 +++---
 .../query-tests/explain-results/table.explain      |   3 +-
 .../query-tests/explain-results/to.explain         |   4 +--
 .../query-tests/explain-results/toDF.explain       |   4 +--
 .../query-tests/explain-results/union.explain      |   4 +--
 .../query-tests/explain-results/unionAll.explain   |   4 +--
 .../explain-results/unionByName.explain            |   8 +++--
 .../unionByName_allowMissingColumns.explain        |   8 +++--
 .../explain-results/unpivot_no_values.explain      |   4 +--
 .../explain-results/unpivot_values.explain         |   4 +--
 .../explain-results/where_column.explain           |   4 +--
 .../query-tests/explain-results/where_expr.explain |   4 +--
 .../withColumnRenamed_java_map.explain             |   4 +--
 .../withColumnRenamed_scala_map.explain            |   4 +--
 .../withColumnRenamed_single.explain               |   4 +--
 .../explain-results/withColumn_single.explain      |   4 +--
 .../explain-results/withColumns_java_map.explain   |   4 +--
 .../explain-results/withColumns_scala_map.explain  |   4 +--
 .../explain-results/withMetadata.explain           |   4 +--
 .../resources/query-tests/queries/colRegex.json    |   2 +-
 .../query-tests/queries/colRegex.proto.bin         |   7 ++--
 .../query-tests/queries/column_as_multi.json       |   4 +--
 .../query-tests/queries/column_as_multi.proto.bin  |   8 ++---
 .../queries/column_as_with_metadata.json           |   6 ++--
 .../queries/column_as_with_metadata.proto.bin      |   2 +-
 .../queries/column_star_with_target.json           |   2 +-
 .../queries/column_star_with_target.proto.bin      |   6 ++--
 .../query-tests/queries/join_condition.json        |  22 +++++++++----
 .../query-tests/queries/join_condition.proto.bin   |  12 ++++---
 .../query-tests/queries/join_inner_condition.json  |  22 +++++++++----
 .../queries/join_inner_condition.proto.bin         |  12 ++++---
 .../resources/query-tests/queries/unionByName.json |  26 ++++++++++++---
 .../query-tests/queries/unionByName.proto.bin      | Bin 92 -> 122 bytes
 .../sql/connect/ProtoToParsedPlanTestSuite.scala   |  36 +++++++++++++++++++--
 151 files changed, 416 insertions(+), 320 deletions(-)

diff --git 
a/connector/connect/client/jvm/src/test/scala/org/apache/spark/sql/PlanGenerationTestSuite.scala
 
b/connector/connect/client/jvm/src/test/scala/org/apache/spark/sql/PlanGenerationTestSuite.scala
index 10aa4b658da..7b5d8bd1018 100644
--- 
a/connector/connect/client/jvm/src/test/scala/org/apache/spark/sql/PlanGenerationTestSuite.scala
+++ 
b/connector/connect/client/jvm/src/test/scala/org/apache/spark/sql/PlanGenerationTestSuite.scala
@@ -299,11 +299,11 @@ class PlanGenerationTestSuite extends ConnectFunSuite 
with BeforeAndAfterAll wit
   }
 
   test("join inner_condition") {
-    left.join(right, fn.col("a") === fn.col("a"))
+    left.alias("l").join(right.alias("r"), fn.col("l.a") === fn.col("r.a"))
   }
 
   test("join condition") {
-    left.join(right, fn.col("id") === fn.col("id"), "left_anti")
+    left.as("l").join(right.as("r"), fn.col("l.id") === fn.col("r.id"), 
"left_anti")
   }
 
   test("crossJoin") {
@@ -347,7 +347,7 @@ class PlanGenerationTestSuite extends ConnectFunSuite with 
BeforeAndAfterAll wit
   }
 
   test("colRegex") {
-    simple.select(simple.colRegex("a|id"))
+    simple.select(simple.colRegex("`a|id`"))
   }
 
   test("as string") {
@@ -428,7 +428,7 @@ class PlanGenerationTestSuite extends ConnectFunSuite with 
BeforeAndAfterAll wit
   }
 
   test("unionByName") {
-    simple.unionByName(right)
+    simple.drop("b").unionByName(right.drop("payload"))
   }
 
   test("unionByName allowMissingColumns") {
@@ -718,13 +718,13 @@ class PlanGenerationTestSuite extends ConnectFunSuite 
with BeforeAndAfterAll wit
   }
 
   columnTest("as multi") {
-    fn.col("d").as(Array("v1", "v2", "v3"))
+    fn.expr("inline(map_values(f))").as(Array("v1", "v2", "v3"))
   }
 
   columnTest("as with metadata") {
     val builder = new MetadataBuilder
-    builder.putString("comment", "modified C field")
-    fn.col("c").as("c_mod", builder.build())
+    builder.putString("comment", "modified E field")
+    fn.col("e").as("e_mod", builder.build())
   }
 
   columnTest("cast") {
@@ -772,7 +772,7 @@ class PlanGenerationTestSuite extends ConnectFunSuite with 
BeforeAndAfterAll wit
   }
 
   columnTest("star with target") {
-    fn.col("str.*")
+    fn.col("d.*")
   }
 
   /* Function API */
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/alias_string.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/alias_string.explain
index b7e3d0a62ec..4e31a67c18f 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/alias_string.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/alias_string.explain
@@ -1 +1,2 @@
-LocalRelation <empty>, [none#0L, none#1, none#2]
+SubqueryAlias fooz
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/alias_symbol.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/alias_symbol.explain
index b7e3d0a62ec..552164a15c6 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/alias_symbol.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/alias_symbol.explain
@@ -1 +1,2 @@
-LocalRelation <empty>, [none#0L, none#1, none#2]
+SubqueryAlias bob
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/apply.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/apply.explain
index b0d2c358215..a01142070a5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/apply.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/apply.explain
@@ -1,2 +1,2 @@
-'Project ['a]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [a#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/as_string.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/as_string.explain
index b7e3d0a62ec..f192daed1a3 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/as_string.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/as_string.explain
@@ -1 +1,2 @@
-LocalRelation <empty>, [none#0L, none#1, none#2]
+SubqueryAlias foo
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/as_symbol.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/as_symbol.explain
index b7e3d0a62ec..08bb0d1a86a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/as_symbol.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/as_symbol.explain
@@ -1 +1,2 @@
-LocalRelation <empty>, [none#0L, none#1, none#2]
+SubqueryAlias bar
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/coalesce.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/coalesce.explain
index 294fa0f73c3..5d300bdd162 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/coalesce.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/coalesce.explain
@@ -1,2 +1,2 @@
 Repartition 5, false
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/col.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/col.explain
index 0a5d0a342db..6219ddc79c1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/col.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/col.explain
@@ -1,2 +1,2 @@
-'Project ['id, 'b]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/colRegex.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/colRegex.explain
index 543b1faaa99..c0a9b3df30b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/colRegex.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/colRegex.explain
@@ -1,2 +1,2 @@
-'Project ['a|id]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, a#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_add.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_add.explain
index 7a4e1d8c99e..a00233be9c5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_add.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_add.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`+`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) + b#0) AS (a + b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_alias.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_alias.explain
index 6599480d99f..aa9a6af2258 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_alias.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_alias.explain
@@ -1,2 +1,2 @@
-'Project ['a AS #0]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [a#0 AS b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_and.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_and.explain
index f5a189da6f8..c6541978628 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_and.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_and.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('and('`>`('a, 10), '`<`('b, 0.5)), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [((a#0 > 10) AND (b#0 < 0.5)) AS ((a > 10) AND (b < 0.5))#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_apply.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_apply.explain
index 8ae42a493d8..06025418e24 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_apply.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_apply.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('f[super_duper_key], None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [f#0[super_duper_key] AS f[super_duper_key]#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_multi.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_multi.explain
index 34d098320fa..097223afda7 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_multi.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_multi.explain
@@ -1,2 +1,3 @@
-'Project ['d AS (v1, v2, v3)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [v1#0L, v2#0, v3#0]
++- Generate inline(map_values(f#0)), false, [v1#0L, v2#0, v3#0]
+   +- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_with_metadata.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_with_metadata.explain
index 6e03801f2fe..9b0e538bf16 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_with_metadata.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_as_with_metadata.explain
@@ -1,2 +1,2 @@
-'Project ['c AS #0]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [e#0 AS e_mod#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc.explain
index d1538809a01..1223297b2d4 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc.explain
@@ -1,2 +1,2 @@
-'Sort ['a ASC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Sort [a#0 ASC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_first.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_first.explain
index d1538809a01..1223297b2d4 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_first.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_first.explain
@@ -1,2 +1,2 @@
-'Sort ['a ASC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Sort [a#0 ASC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_last.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_last.explain
index 3d8ad392e46..62d108d46d5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_last.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_asc_nulls_last.explain
@@ -1,2 +1,2 @@
-'Sort ['a ASC NULLS LAST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Sort [a#0 ASC NULLS LAST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_between.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_between.explain
index af895c4fa0d..140fefe250f 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_between.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_between.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('and('`>=`('a, 10), '`<=`('a, 20)), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [((a#0 >= 10) AND (a#0 <= 20)) AS ((a >= 10) AND (a <= 20))#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseAND.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseAND.explain
index 49063410a41..497e839477e 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseAND.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseAND.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`&`('a, 255), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(a#0 & 255) AS (a & 255)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseOR.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseOR.explain
index 73fc02c35d8..ceb4f23b439 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseOR.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseOR.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`|`('a, 7), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(a#0 | 7) AS (a | 7)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseXOR.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseXOR.explain
index 37edb68a75f..efb99f2993f 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseXOR.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_bitwiseXOR.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`^`('a, 78), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(a#0 ^ 78) AS (a ^ 78)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_cast.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_cast.explain
index 3587da106aa..88451be9338 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_cast.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_cast.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias(cast('a as bigint), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [cast(a#0 as bigint) AS a#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_contains.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_contains.explain
index 3cf63e745a6..15b561a68f1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_contains.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_contains.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('contains('g, baz), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [Contains(g#0, baz) AS contains(g, baz)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc.explain
index 70b7479554a..89f4080296a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc.explain
@@ -1,2 +1,2 @@
-'Sort ['b DESC NULLS LAST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Sort [b#0 DESC NULLS LAST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_first.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_first.explain
index 372b32017ca..bb12e4aabc9 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_first.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_first.explain
@@ -1,2 +1,2 @@
-'Sort ['b DESC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Sort [b#0 DESC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_last.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_last.explain
index 70b7479554a..89f4080296a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_last.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_desc_nulls_last.explain
@@ -1,2 +1,2 @@
-'Sort ['b DESC NULLS LAST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Sort [b#0 DESC NULLS LAST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_divide.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_divide.explain
index 08f4f8e393e..8e8e4de67a3 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_divide.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_divide.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`/`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) / cast(b#0 as double)) AS (a / b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_dropFields.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_dropFields.explain
index ad5585fcf3c..3216a4b9160 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_dropFields.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_dropFields.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias(update_fields(update_fields('d, dropfield(a)), 
dropfield(c)), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [update_fields(d#0, dropfield(a), dropfield(c)) AS update_fields(d, 
dropfield(), dropfield())#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_endsWith.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_endsWith.explain
index 75a9e6fa9f2..b9144451a27 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_endsWith.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_endsWith.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('endswith('g, suffix_), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [EndsWith(g#0, suffix_) AS endswith(g, suffix_)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_eqNullSafe.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_eqNullSafe.explain
index 39d14ed9827..8b43c43c8de 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_eqNullSafe.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_eqNullSafe.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`<=>`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) <=> b#0) AS (a <=> b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_equals.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_equals.explain
index 2f1eab15525..84abc512662 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_equals.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_equals.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`=`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) = b#0) AS (a = b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_geq.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_geq.explain
index 37e3352670b..e7a922f21a7 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_geq.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_geq.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`>=`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) >= b#0) AS (a >= b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_getField.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_getField.explain
index 230bd2fb598..602251709f9 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_getField.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_getField.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('d[b], None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [d#0.b AS d.b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_getItem.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_getItem.explain
index b0e6e9ccf78..31d522711c5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_getItem.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_getItem.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('e[3], None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [e#0[3] AS e[3]#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_gt.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_gt.explain
index 38cc79bbe7e..3f3f4408042 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_gt.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_gt.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`>`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) > b#0) AS (a > b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_ilike.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_ilike.explain
index 588ef3a5b22..1fb1a4718a0 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_ilike.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_ilike.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('like('g, %fOb%), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [g#0 LIKE %fOb% AS g LIKE %fOb%#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNaN.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNaN.explain
index 8fcb852a6b1..a93e063e4e1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNaN.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNaN.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('isNaN('b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [isnan(b#0) AS isnan(b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNotNull.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNotNull.explain
index ec0497b2591..bae67b17871 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNotNull.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNotNull.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('isNotNull('g), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [isnotnull(g#0) AS (g IS NOT NULL)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNull.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNull.explain
index b1a24bf5f28..085d77bc5e8 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNull.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isNull.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('isNull('g), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [isnull(g#0) AS (g IS NULL)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isin.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isin.explain
index ea92861186c..f3e33acbaa8 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_isin.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_isin.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('g IN (hello,world,foo), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [g#0 IN (hello,world,foo) AS (g IN (hello, world, foo))#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_leq.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_leq.explain
index 01fcaee9ba0..dc23b7fabaf 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_leq.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_leq.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`<=`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) <= b#0) AS (a <= b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_like.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_like.explain
index 54c8d50eabf..ade16bb349a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_like.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_like.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('like('g, %bob%), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [g#0 LIKE %bob% AS g LIKE %bob%#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_lt.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_lt.explain
index 2438cf3ea4e..62c664e3b25 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_lt.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_lt.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`<`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) < b#0) AS (a < b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_modulo.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_modulo.explain
index d010d609b84..b2fa105afc1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_modulo.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_modulo.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`%`('a, 10), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(a#0 % 10) AS (a % 10)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_multiply.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_multiply.explain
index 3bb266b609f..14a8a180ffa 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_multiply.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_multiply.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`*`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) * b#0) AS (a * b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_not.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_not.explain
index 897371ed75c..3bf350c7964 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_not.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_not.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`!`(true), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [NOT true AS (NOT true)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_not_equals.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_not_equals.explain
index 7ebf39127e8..249c00c568e 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_not_equals.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_not_equals.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`!`('`=`('a, 'b)), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [NOT (cast(a#0 as double) = b#0) AS (NOT (a = b))#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_or.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_or.explain
index a5e77e36639..1447d506d33 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_or.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_or.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('or('`>`('a, 10), '`<`('b, 0.5)), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [((a#0 > 10) OR (b#0 < 0.5)) AS ((a > 10) OR (b < 0.5))#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_rlike.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_rlike.explain
index 8cf1f42bcab..89a351f1ec7 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_rlike.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_rlike.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('like('g, ^[0-9]*$), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [g#0 LIKE ^[0-9]*$ AS g LIKE ^[0-9]*$#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_star.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_star.explain
index a9384942aa1..d2bcd89c109 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_star.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_star.explain
@@ -1,2 +1,2 @@
-'Project [*]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_star_with_target.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_star_with_target.explain
index f3366709711..0ae702c2c6b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_star_with_target.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_star_with_target.explain
@@ -1,2 +1,2 @@
-'Project [str.*]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [d#0.id AS id#0L, d#0.a AS a#0, d#0.b AS b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_startsWith.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_startsWith.explain
index bdf95dba324..0e4d63ca600 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_startsWith.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_startsWith.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('startswith('g, prefix_), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [StartsWith(g#0, prefix_) AS startswith(g, prefix_)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_substr.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_substr.explain
index f3e081be5db..b9c8b8646c9 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_substr.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_substr.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('substr('g, 8, 3), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [substr(g#0, 8, 3) AS substr(g, 8, 3)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_subtract.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_subtract.explain
index eb56ecad484..9b1eb4866d1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_subtract.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_subtract.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('`-`('a, 'b), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [(cast(a#0 as double) - b#0) AS (a - b)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_unary_minus.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_unary_minus.explain
index 95354071643..b2b7bcfb855 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_unary_minus.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_unary_minus.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('negative(1), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [-1 AS negative(1)#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_when_otherwise.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_when_otherwise.explain
index 8f972122b13..62858aad0df 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_when_otherwise.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_when_otherwise.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias(CASE WHEN '`<`('a, 10) THEN low WHEN '`<`('a, 20) 
THEN medium ELSE high END, None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [CASE WHEN (a#0 < 10) THEN low WHEN (a#0 < 20) THEN medium ELSE high 
END AS CASE WHEN (a < 10) THEN low WHEN (a < 20) THEN medium ELSE high END#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_withField.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_withField.explain
index 386554d6e47..575fe0b0fd7 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/column_withField.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/column_withField.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias(update_fields('d, WithField(x, xq)), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2, none#3, none#4, none#5, 
none#6]
+Project [update_fields(d#0, WithField(x, xq)) AS update_fields(d, 
WithField(xq))#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0, d#0, e#0, f#0, g#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/crossJoin.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/crossJoin.explain
index 05c0d319db4..612f8337ac9 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/crossJoin.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/crossJoin.explain
@@ -1,3 +1,3 @@
 'Join Cross
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/describe.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/describe.explain
index 3f88f836b4b..f205f7ef7a1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/describe.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/describe.explain
@@ -1,6 +1,6 @@
-Project [none#2, element_at(none#0, none#2, None, false) AS #0, 
element_at(none#1, none#2, None, false) AS #1]
-+- !Project [none#0, none#1, none#2]
-   +- Generate explode([count,mean,stddev,min,max]), false, [none#0]
-      +- !Aggregate [map(cast(count as string), cast(count(none#0L) as 
string), cast(mean as string), cast(avg(none#0L) as string), cast(stddev as 
string), cast(stddev_samp(cast(none#0L as double)) as string), cast(min as 
string), cast(min(none#0L) as string), cast(max as string), cast(max(none#0L) 
as string)) AS #0, map(cast(count as string), cast(count(none#1) as string), 
cast(mean as string), cast(avg(none#1) as string), cast(stddev as string), 
cast(stddev_samp(none#1) as string), cas [...]
-         +- Project [none#0L, none#2]
-            +- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [summary#0, element_at(id#0, summary#0, None, false) AS id#0, 
element_at(b#0, summary#0, None, false) AS b#0]
++- Project [id#0, b#0, summary#0]
+   +- Generate explode([count,mean,stddev,min,max]), false, [summary#0]
+      +- Aggregate [map(cast(count as string), cast(count(id#0L) as string), 
cast(mean as string), cast(avg(id#0L) as string), cast(stddev as string), 
cast(stddev_samp(cast(id#0L as double)) as string), cast(min as string), 
cast(min(id#0L) as string), cast(max as string), cast(max(id#0L) as string)) AS 
id#0, map(cast(count as string), cast(count(b#0) as string), cast(mean as 
string), cast(avg(b#0) as string), cast(stddev as string), 
cast(stddev_samp(b#0) as string), cast(min as string),  [...]
+         +- Project [id#0L, b#0]
+            +- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/distinct.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/distinct.explain
index e4da86166dd..e809829dfa5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/distinct.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/distinct.explain
@@ -1,2 +1,2 @@
-Deduplicate [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Deduplicate [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates.explain
index e4da86166dd..e809829dfa5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates.explain
@@ -1,2 +1,2 @@
-Deduplicate [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Deduplicate [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_array.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_array.explain
index 9f8c1bb8d91..6a85a347caf 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_array.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_array.explain
@@ -1,2 +1,2 @@
-Deduplicate [none#1, none#0L]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Deduplicate [a#0, id#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_seq.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_seq.explain
index cd7bbac89df..5af0ec857d2 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_seq.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_names_seq.explain
@@ -1,2 +1,2 @@
-Deduplicate [none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Deduplicate [a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_varargs.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_varargs.explain
index b034ead771d..0a9079864d5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_varargs.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/dropDuplicates_varargs.explain
@@ -1,2 +1,2 @@
-Deduplicate [none#1, none#2, none#0L]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Deduplicate [a#0, b#0, id#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_column.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_column.explain
index d50b1411784..a01142070a5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_column.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_column.explain
@@ -1,2 +1,2 @@
-Project [none#1]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [a#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_strings.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_strings.explain
index 75d78bac2d9..bdd178772c8 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_strings.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_multiple_strings.explain
@@ -1,2 +1,2 @@
 Project
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_column.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_column.explain
index d63618297e5..c0a9b3df30b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_column.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_column.explain
@@ -1,2 +1,2 @@
-Project [none#0L, none#1]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, a#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_string.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_string.explain
index 7eaf23106a1..6219ddc79c1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_string.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/drop_single_string.explain
@@ -1,2 +1,2 @@
-Project [none#0L, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/except.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/except.explain
index eb3c62c6f51..d9e8cc93af5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/except.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/except.explain
@@ -1,3 +1,3 @@
 'Except false
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/exceptAll.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/exceptAll.explain
index 95882222ba0..5519e85b1fe 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/exceptAll.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/exceptAll.explain
@@ -1,3 +1,3 @@
 'Except All true
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/filter.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/filter.explain
index de1e9764a7c..442db6ee85a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/filter.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/filter.explain
@@ -1,2 +1,2 @@
-'Filter '`=`('id, 10)
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Filter (id#0L = 10)
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/filter_expr.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/filter_expr.explain
index 4a4d83cbbe3..831e7c6cf57 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/filter_expr.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/filter_expr.explain
@@ -1,2 +1,2 @@
-'Filter (10.0 > 'exp('a))
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Filter (EXP(cast(a#0 as double)) < cast(10.0 as double))
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/function_col.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/function_col.explain
index 6915b579dfd..aac54ef5662 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/function_col.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/function_col.explain
@@ -1,2 +1,2 @@
-'Project ['id]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/function_lit.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/function_lit.explain
index d7b3a22675d..11454267c37 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/function_lit.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/function_lit.explain
@@ -1,2 +1,2 @@
-'Project ['id, 'id, unresolvedalias(true, None), unresolvedalias(68, None), 
unresolvedalias(9872, None), unresolvedalias(-8726532, None), 
unresolvedalias(7834609328726532, None), unresolvedalias(2.718281828459045, 
None), unresolvedalias(-0.8, None), unresolvedalias(89.97620, None), 
unresolvedalias(89889.7667231, None), unresolvedalias(connect!, None), 
unresolvedalias(T, None), unresolvedalias(ABCDEFGHIJ, None), 
unresolvedalias(0x78797A7B7C7D7E7F808182838485868788898A8B8C8D8E, None), unre 
[...]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, id#0L, true AS true#0, 68 AS 68#0, 9872 AS 9872#0, -8726532 AS 
-8726532#0, 7834609328726532 AS 7834609328726532#0L, 2.718281828459045 AS 
2.718281828459045#0, -0.8 AS -0.8#0, 89.97620 AS 89.97620#0, 89889.7667231 AS 
89889.7667231#0, connect! AS connect!#0, T AS T#0, ABCDEFGHIJ AS ABCDEFGHIJ#0, 
0x78797A7B7C7D7E7F808182838485868788898A8B8C8D8E AS 
X'78797A7B7C7D7E7F808182838485868788898A8B8C8D8E'#0, 0x0806 AS X'0806'#0, 
2020-10-10 AS DATE '2020-10-10'#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/function_max.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/function_max.explain
index 077ba5498b1..06adc24970f 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/function_max.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/function_max.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias('max('id), None)]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Aggregate [max(id#0L) AS max(id)#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/hint.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/hint.explain
index 71ec808a221..210be491c38 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/hint.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/hint.explain
@@ -1,2 +1,2 @@
-UnresolvedHint coalesce, [100]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Repartition 100, false
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/intersect.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/intersect.explain
index 89b24beb6fe..b779995c989 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/intersect.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/intersect.explain
@@ -1,3 +1,3 @@
 'Intersect false
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/intersectAll.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/intersectAll.explain
index 5159e4f5d1e..537b25838f5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/intersectAll.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/intersectAll.explain
@@ -1,3 +1,3 @@
 'Intersect All true
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_condition.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_condition.explain
index a0f818eb7db..31681777a39 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_condition.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_condition.explain
@@ -1,3 +1,5 @@
-'Join LeftAnti, '`=`('id, 'id)
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Join LeftAnti, (id#0L = id#0L)
+:- SubqueryAlias l
+:  +- LocalRelation <empty>, [id#0L, a#0, b#0]
++- SubqueryAlias r
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_condition.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_condition.explain
index f0bd1db03ac..c8f41d09273 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_condition.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_condition.explain
@@ -1,3 +1,5 @@
-'Join Inner, '`=`('a, 'a)
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Join Inner, (a#0 = a#0)
+:- SubqueryAlias l
+:  +- LocalRelation <empty>, [id#0L, a#0, b#0]
++- SubqueryAlias r
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_no_condition.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_no_condition.explain
index df290259b0a..1414616da4d 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_no_condition.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_no_condition.explain
@@ -1,3 +1,3 @@
 'Join Inner
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_array.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_array.explain
index 8df79323f39..ed29cef333a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_array.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_array.explain
@@ -1,3 +1,4 @@
-'Join UsingJoin(Inner, [id, a])
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Project [id#0L, a#0, b#0, payload#0]
++- 'Join Inner, ((id#0L = id#0L) AND (a#0 = a#0))
+   :- LocalRelation <empty>, [id#0L, a#0, b#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_seq.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_seq.explain
index 8df79323f39..ed29cef333a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_seq.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_multiple_col_seq.explain
@@ -1,3 +1,4 @@
-'Join UsingJoin(Inner, [id, a])
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Project [id#0L, a#0, b#0, payload#0]
++- 'Join Inner, ((id#0L = id#0L) AND (a#0 = a#0))
+   :- LocalRelation <empty>, [id#0L, a#0, b#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_single_col.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_single_col.explain
index 8f83aaf56c1..8667e407dd3 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_single_col.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_inner_using_single_col.explain
@@ -1,3 +1,4 @@
-'Join UsingJoin(Inner, [id])
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Project [id#0L, a#0, b#0, a#0, payload#0]
++- 'Join Inner, (id#0L = id#0L)
+   :- LocalRelation <empty>, [id#0L, a#0, b#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_array.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_array.explain
index 4b7bfe92868..6586d67708b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_array.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_array.explain
@@ -1,3 +1,4 @@
-'Join UsingJoin(FullOuter, [id, a])
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Project [coalesce(id#0L, id#0L) AS id#0L, coalesce(a#0, a#0) AS a#0, b#0, 
payload#0]
++- 'Join FullOuter, ((id#0L = id#0L) AND (a#0 = a#0))
+   :- LocalRelation <empty>, [id#0L, a#0, b#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_seq.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_seq.explain
index 7fb3e44a238..ed47c617337 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_seq.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_multiple_col_seq.explain
@@ -1,3 +1,4 @@
-'Join UsingJoin(RightOuter, [id, a])
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Project [id#0L, a#0, b#0, payload#0]
++- 'Join RightOuter, ((id#0L = id#0L) AND (a#0 = a#0))
+   :- LocalRelation <empty>, [id#0L, a#0, b#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_single_col.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_single_col.explain
index a5f9651e8be..64553477f75 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_single_col.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/join_using_single_col.explain
@@ -1,3 +1,4 @@
-'Join UsingJoin(LeftSemi, [id])
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+'Project [id#0L, a#0, b#0]
++- 'Join LeftSemi, (id#0L = id#0L)
+   :- LocalRelation <empty>, [id#0L, a#0, b#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/limit.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/limit.explain
index 4cfee65478b..3d445331b35 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/limit.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/limit.explain
@@ -1,3 +1,3 @@
 GlobalLimit 10
 +- LocalLimit 10
-   +- LocalRelation <empty>, [none#0L, none#1, none#2]
+   +- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/melt_no_values.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/melt_no_values.explain
index 36566b68c95..f61fc30a3a5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/melt_no_values.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/melt_no_values.explain
@@ -1,2 +1,2 @@
-'Unpivot ArraySeq('id, 'a), , [value]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Expand [[id#0L, a#0, b, b#0]], [id#0L, a#0, #0, value#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/melt_values.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/melt_values.explain
index e11778c63bb..b5742d976de 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/melt_values.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/melt_values.explain
@@ -1,2 +1,2 @@
-'Unpivot ArraySeq('a), ArraySeq(List('id)), , [value]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Expand [[a#0, id, id#0L]], [a#0, #0, value#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/offset.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/offset.explain
index 2da57931059..f1f29424262 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/offset.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/offset.explain
@@ -1,2 +1,2 @@
 Offset 1000
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_columns.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_columns.explain
index 59017198796..f663d0dabe1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_columns.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_columns.explain
@@ -1,2 +1,2 @@
-'Sort ['id ASC NULLS FIRST, 'b ASC NULLS FIRST, 'a ASC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Sort [id#0L ASC NULLS FIRST, b#0 ASC NULLS FIRST, a#0 ASC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_strings.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_strings.explain
index 3b005e5a1dd..dddaffbc845 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_strings.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/orderBy_strings.explain
@@ -1,2 +1,2 @@
-'Sort ['b ASC NULLS FIRST, 'id ASC NULLS FIRST, 'a ASC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Sort [b#0 ASC NULLS FIRST, id#0L ASC NULLS FIRST, a#0 ASC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read.explain
index 30e5ec4542c..da1c0f25e54 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read.explain
@@ -1 +1 @@
-Relation [none#0,none#1,none#2] csv
+Relation [name#0,age#0,job#0] csv
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_csv.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_csv.explain
index 069e76a8154..4479893592a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_csv.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_csv.explain
@@ -1 +1 @@
-Relation [none#0] csv
+Relation [_c0#0] csv
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_json.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_json.explain
index ead927c8f24..871c86c239b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_json.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_json.explain
@@ -1 +1 @@
-Relation [none#0L,none#1] json
+Relation [age#0L,name#0] json
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_orc.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_orc.explain
index 9a8b1aab953..c5cff325e5e 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_orc.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_orc.explain
@@ -1 +1 @@
-Relation [none#0,none#1,none#2] orc
+Relation [name#0,favorite_color#0,favorite_numbers#0] orc
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_parquet.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_parquet.explain
index 9fd4f43aeee..f77414dc47e 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_parquet.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_parquet.explain
@@ -1 +1 @@
-Relation [none#0,none#1,none#2] parquet
+Relation [name#0,favorite_color#0,favorite_numbers#0] parquet
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_path.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_path.explain
index 70393afccb2..bad6a06e3fd 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_path.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_path.explain
@@ -1 +1 @@
-Relation [none#0,none#1] csv
+Relation [name#0,age#0] csv
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_table.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_table.explain
index 0ec9812e3b9..11a96567dbc 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_table.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_table.explain
@@ -1 +1,2 @@
-'UnresolvedRelation [myTable], [], false
+SubqueryAlias primary.tempdb.myTable
++- RelationV2[id#0L] primary.tempdb.myTable primary.tempdb.myTable
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_text.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_text.explain
index 3e78575dac6..1002d714603 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/read_text.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/read_text.explain
@@ -1 +1 @@
-Relation [none#0] text
+Relation [value#0] text
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartition.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartition.explain
index dd6c0fe4062..f30594bc18c 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartition.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartition.explain
@@ -1,2 +1,2 @@
 Repartition 24, true
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_expressions.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_expressions.explain
index 2f169429f81..d38e6a0075f 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_expressions.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_expressions.explain
@@ -1,2 +1,2 @@
-'RepartitionByExpression ['a ASC NULLS FIRST, 'id DESC NULLS FIRST]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+RepartitionByExpression [a#0 ASC NULLS FIRST, id#0L DESC NULLS FIRST]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_num_partitions_expressions.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_num_partitions_expressions.explain
index 054f8ad05bb..d9c9678ab5e 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_num_partitions_expressions.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartitionByRange_num_partitions_expressions.explain
@@ -1,2 +1,2 @@
-'RepartitionByExpression ['b ASC NULLS FIRST, 'id DESC NULLS FIRST], 33
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+RepartitionByExpression [b#0 ASC NULLS FIRST, id#0L DESC NULLS FIRST], 33
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_expressions.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_expressions.explain
index e6f09597d7d..3b602b4fd71 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_expressions.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_expressions.explain
@@ -1,2 +1,2 @@
-'RepartitionByExpression ['id, 'b]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+RepartitionByExpression [id#0L, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_num_partitions_expressions.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_num_partitions_expressions.explain
index dbf1e52e2d3..e65dc5cd7b8 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_num_partitions_expressions.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/repartition_num_partitions_expressions.explain
@@ -1,2 +1,2 @@
-'RepartitionByExpression ['a, 'id], 22
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+RepartitionByExpression [a#0, id#0L], 22
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sample_fraction_seed.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sample_fraction_seed.explain
index 9981205d7af..f94e0a850e4 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sample_fraction_seed.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sample_fraction_seed.explain
@@ -1,2 +1,2 @@
 Sample 0.0, 0.43, false, 9890823
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sample_withReplacement_fraction_seed.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sample_withReplacement_fraction_seed.explain
index 4e2d884bb37..340c25ab6d0 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sample_withReplacement_fraction_seed.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sample_withReplacement_fraction_seed.explain
@@ -1,2 +1,2 @@
 Sample 0.0, 0.23, true, 898
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/select.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/select.explain
index 6915b579dfd..aac54ef5662 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/select.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/select.explain
@@ -1,2 +1,2 @@
-'Project ['id]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/selectExpr.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/selectExpr.explain
index 53eaa9352a4..935a26e47d3 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/selectExpr.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/selectExpr.explain
@@ -1,2 +1,2 @@
-'Project [('a + 10) AS #0, ('id % 10) AS #1]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [(a#0 + 10) AS x#0, (id#0L % cast(10 as bigint)) AS grp#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/select_strings.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/select_strings.explain
index 61526cc6042..c0a9b3df30b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/select_strings.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/select_strings.explain
@@ -1,2 +1,2 @@
-'Project ['id, 'a]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, a#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_columns.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_columns.explain
index 79ae0d702aa..ce1e7ae6f4c 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_columns.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_columns.explain
@@ -1,2 +1,2 @@
-'Sort ['id ASC NULLS FIRST, 'b ASC NULLS FIRST], false
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Sort [id#0L ASC NULLS FIRST, b#0 ASC NULLS FIRST], false
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_strings.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_strings.explain
index 9d49e22afe4..373960f809b 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_strings.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sortWithinPartitions_strings.explain
@@ -1,2 +1,2 @@
-'Sort ['a ASC NULLS FIRST, 'id ASC NULLS FIRST], false
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Sort [a#0 ASC NULLS FIRST, id#0L ASC NULLS FIRST], false
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sort_columns.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sort_columns.explain
index ce5e8ea1f8d..8cb023ce5fb 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sort_columns.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sort_columns.explain
@@ -1,2 +1,2 @@
-'Sort ['id ASC NULLS FIRST, 'b ASC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Sort [id#0L ASC NULLS FIRST, b#0 ASC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sort_strings.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sort_strings.explain
index 96c18b836c1..2d060dc9fb8 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sort_strings.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sort_strings.explain
@@ -1,2 +1,2 @@
-'Sort ['b ASC NULLS FIRST, 'a ASC NULLS FIRST], true
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Sort [b#0 ASC NULLS FIRST, a#0 ASC NULLS FIRST], true
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sql.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sql.explain
index 61a0e23e3df..7f5aafb1943 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/sql.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/sql.explain
@@ -1,2 +1,2 @@
-'Project [unresolvedalias(1, None)]
+Project [1 AS 1#0]
 +- OneRowRelation
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/summary.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/summary.explain
index 98f69703a4c..3ce8a26f138 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/summary.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/summary.explain
@@ -1,5 +1,5 @@
-Project [none#3, element_at(none#0, none#3, None, false) AS #0, 
element_at(none#1, none#3, None, false) AS #1, element_at(none#2, none#3, None, 
false) AS #2]
-+- !Project [none#0, none#1, none#2, none#3]
-   +- Generate explode([mean,min]), false, [none#0]
-      +- Aggregate [map(cast(mean as string), cast(avg(none#0L) as string), 
cast(min as string), cast(min(none#0L) as string)) AS #0, map(cast(mean as 
string), cast(avg(none#1) as string), cast(min as string), cast(min(none#1) as 
string)) AS #1, map(cast(mean as string), cast(avg(none#2) as string), cast(min 
as string), cast(min(none#2) as string)) AS #2]
-         +- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [summary#0, element_at(id#0, summary#0, None, false) AS id#0, 
element_at(a#0, summary#0, None, false) AS a#0, element_at(b#0, summary#0, 
None, false) AS b#0]
++- Project [id#0, a#0, b#0, summary#0]
+   +- Generate explode([mean,min]), false, [summary#0]
+      +- Aggregate [map(cast(mean as string), cast(avg(id#0L) as string), 
cast(min as string), cast(min(id#0L) as string)) AS id#0, map(cast(mean as 
string), cast(avg(a#0) as string), cast(min as string), cast(min(a#0) as 
string)) AS a#0, map(cast(mean as string), cast(avg(b#0) as string), cast(min 
as string), cast(min(b#0) as string)) AS b#0]
+         +- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/table.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/table.explain
index 0ec9812e3b9..11a96567dbc 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/table.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/table.explain
@@ -1 +1,2 @@
-'UnresolvedRelation [myTable], [], false
+SubqueryAlias primary.tempdb.myTable
++- RelationV2[id#0L] primary.tempdb.myTable primary.tempdb.myTable
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/to.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/to.explain
index cc952f01a83..1e113ce4dde 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/to.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/to.explain
@@ -1,2 +1,2 @@
-Project [none#2, cast(none#0L as int) AS #0]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [b#0, cast(id#0L as int) AS id#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/toDF.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/toDF.explain
index aa71dcd5231..e751403f8d4 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/toDF.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/toDF.explain
@@ -1,2 +1,2 @@
-Project [none#0L AS #0L, none#1 AS #1, none#2 AS #2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L AS x1#0L, a#0 AS x2#0, b#0 AS x3#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/union.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/union.explain
index 8d2530c4959..4d5d1f53b84 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/union.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/union.explain
@@ -1,3 +1,3 @@
 Union false, false
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unionAll.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unionAll.explain
index 8d2530c4959..4d5d1f53b84 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unionAll.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unionAll.explain
@@ -1,3 +1,3 @@
 Union false, false
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+:- LocalRelation <empty>, [id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName.explain
index 104217a175d..ed960186ad4 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName.explain
@@ -1,3 +1,5 @@
-'Union true, false
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+Union false, false
+:- Project [id#0L, a#0]
+:  +- LocalRelation <empty>, [id#0L, a#0, b#0]
++- Project [id#0L, a#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName_allowMissingColumns.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName_allowMissingColumns.explain
index 70d1955f58d..96bd9f281c1 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName_allowMissingColumns.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unionByName_allowMissingColumns.explain
@@ -1,3 +1,5 @@
-'Union true, true
-:- LocalRelation <empty>, [none#0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0, none#1L, none#2]
+Union false, false
+:- Project [id#0L, a#0, b#0, null AS payload#0]
+:  +- LocalRelation <empty>, [id#0L, a#0, b#0]
++- Project [id#0L, a#0, null AS b#0, payload#0]
+   +- LocalRelation <empty>, [a#0, id#0L, payload#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_no_values.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_no_values.explain
index 3d3331f31f9..8d1749ee74c 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_no_values.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_no_values.explain
@@ -1,2 +1,2 @@
-'Unpivot ArraySeq('id), , [value]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Expand [[id#0L, a, cast(a#0 as double)], [id#0L, b, b#0]], [id#0L, #0, value#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_values.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_values.explain
index a7b5b530463..f61fc30a3a5 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_values.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/unpivot_values.explain
@@ -1,2 +1,2 @@
-'Unpivot ArraySeq('id, 'a), ArraySeq(List('b)), , [value]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Expand [[id#0L, a#0, b, b#0]], [id#0L, a#0, #0, value#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/where_column.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/where_column.explain
index 9580f08b5e6..bb4aa22afe0 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/where_column.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/where_column.explain
@@ -1,2 +1,2 @@
-'Filter '`=`('id, 1)
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Filter (id#0L = 1)
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/where_expr.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/where_expr.explain
index 0c3be1cbef3..cce42b72116 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/where_expr.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/where_expr.explain
@@ -1,2 +1,2 @@
-'Filter (1000 > ('a + 'id))
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Filter ((cast(a#0 as bigint) + id#0L) < cast(1000 as bigint))
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_java_map.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_java_map.explain
index 2fed4e66ac5..0bacc8a11d2 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_java_map.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_java_map.explain
@@ -1,2 +1,2 @@
-Project [none#0L AS #0L, none#1, none#2 AS #1]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L AS nid#0L, a#0, b#0 AS bravo#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_scala_map.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_scala_map.explain
index 9a22c8ad5cb..56bed6fca9a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_scala_map.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_scala_map.explain
@@ -1,2 +1,2 @@
-Project [none#0L, none#1 AS #0, none#2 AS #1]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, a#0 AS alpha#0, b#0 AS beta#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_single.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_single.explain
index 07dec2eba0f..f4713f5fbc2 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_single.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumnRenamed_single.explain
@@ -1,2 +1,2 @@
-Project [none#0L AS #0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L AS nid#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumn_single.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumn_single.explain
index fe8ec9459bc..958529c1121 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumn_single.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumn_single.explain
@@ -1,2 +1,2 @@
-Project [none#0L, none#1, none#2, (100 + none#1) AS #0]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, a#0, b#0, (a#0 + 100) AS z#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_java_map.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_java_map.explain
index 6702dc2f18e..dadb7bfbd86 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_java_map.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_java_map.explain
@@ -1,2 +1,2 @@
-Project [none#0L, 123 AS #0, none#2, none#0L AS #1L]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, 123 AS a#0, b#0, id#0L AS g#0L]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_scala_map.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_scala_map.explain
index 97066dbe7df..3866cbbba70 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_scala_map.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withColumns_scala_map.explain
@@ -1,2 +1,2 @@
-Project [none#0L, none#1, redacted AS #0, (100 + none#1) AS #1]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L, a#0, redacted AS b#0, (a#0 + 100) AS z#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withMetadata.explain
 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withMetadata.explain
index 07dec2eba0f..0bd68ea4e8a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/explain-results/withMetadata.explain
+++ 
b/connector/connect/common/src/test/resources/query-tests/explain-results/withMetadata.explain
@@ -1,2 +1,2 @@
-Project [none#0L AS #0L, none#1, none#2]
-+- LocalRelation <empty>, [none#0L, none#1, none#2]
+Project [id#0L AS id#0L, a#0, b#0]
++- LocalRelation <empty>, [id#0L, a#0, b#0]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/colRegex.json 
b/connector/connect/common/src/test/resources/query-tests/queries/colRegex.json
index bb4c89e4516..90d35213bbb 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/colRegex.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/colRegex.json
@@ -7,7 +7,7 @@
     },
     "expressions": [{
       "unresolvedRegex": {
-        "colName": "a|id"
+        "colName": "`a|id`"
       }
     }]
   }
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/colRegex.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/colRegex.proto.bin
index 1a3b97ea0f5..6503926be7a 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/colRegex.proto.bin
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/colRegex.proto.bin
@@ -1,3 +1,4 @@
-0
-$Z" struct<id:bigint,a:int,b:double>B
-a|id
\ No newline at end of file
+2
+$Z" struct<id:bigint,a:int,b:double>
+B
+`a|id`
\ No newline at end of file
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.json
 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.json
index 940f6a5139c..15c6c6cf093 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.json
@@ -8,8 +8,8 @@
     "expressions": [{
       "alias": {
         "expr": {
-          "unresolvedAttribute": {
-            "unparsedIdentifier": "d"
+          "expressionString": {
+            "expression": "inline(map_values(f))"
           }
         },
         "name": ["v1", "v2", "v3"]
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.proto.bin
index a8568f73f8d..4762a9fad8c 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.proto.bin
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_multi.proto.bin
@@ -1,4 +1,4 @@
-�
-�Z��struct<id:bigint,a:int,b:double,d:struct<id:bigint,a:int,b:double>,e:array<int>,f:map<string,struct<id:bigint,a:int,b:double>>,g:string>2
-
-dv1v2v3
\ No newline at end of file
+�
+�Z��struct<id:bigint,a:int,b:double,d:struct<id:bigint,a:int,b:double>,e:array<int>,f:map<string,struct<id:bigint,a:int,b:double>>,g:string>)2'
+"
+inline(map_values(f))v1v2v3
\ No newline at end of file
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.json
 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.json
index 6c399f9959e..dff2912f8b6 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.json
@@ -9,11 +9,11 @@
       "alias": {
         "expr": {
           "unresolvedAttribute": {
-            "unparsedIdentifier": "c"
+            "unparsedIdentifier": "e"
           }
         },
-        "name": ["c_mod"],
-        "metadata": "{\"comment\":\"modified C field\"}"
+        "name": ["e_mod"],
+        "metadata": "{\"comment\":\"modified E field\"}"
       }
     }]
   }
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.proto.bin
index 65161a7a307..83592a71e5c 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.proto.bin
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/column_as_with_metadata.proto.bin
@@ -1,4 +1,4 @@
 �
 
�Z��struct<id:bigint,a:int,b:double,d:struct<id:bigint,a:int,b:double>,e:array<int>,f:map<string,struct<id:bigint,a:int,b:double>>,g:string>02.
 
-cc_mod{"comment":"modified C field"}
\ No newline at end of file
+ee_mod{"comment":"modified E field"}
\ No newline at end of file
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.json
 
b/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.json
index 2b873369b9d..26372cb4e50 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.json
@@ -7,7 +7,7 @@
     },
     "expressions": [{
       "unresolvedStar": {
-        "unparsedTarget": "str.*"
+        "unparsedTarget": "d.*"
       }
     }]
   }
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.proto.bin
index a15c03b48b9..63c5c7f5330 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.proto.bin
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/column_star_with_target.proto.bin
@@ -1,3 +1,3 @@
-�
-�Z��struct<id:bigint,a:int,b:double,d:struct<id:bigint,a:int,b:double>,e:array<int>,f:map<string,struct<id:bigint,a:int,b:double>>,g:string>
      *
-str.*
\ No newline at end of file
+�
+�Z��struct<id:bigint,a:int,b:double,d:struct<id:bigint,a:int,b:double>,e:array<int>,f:map<string,struct<id:bigint,a:int,b:double>>,g:string>*
+d.*
\ No newline at end of file
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/join_condition.json
 
b/connector/connect/common/src/test/resources/query-tests/queries/join_condition.json
index b152642b547..94abd7a159f 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/join_condition.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/join_condition.json
@@ -1,13 +1,23 @@
 {
   "join": {
     "left": {
-      "localRelation": {
-        "schema": "struct\u003cid:bigint,a:int,b:double\u003e"
+      "subqueryAlias": {
+        "input": {
+          "localRelation": {
+            "schema": "struct\u003cid:bigint,a:int,b:double\u003e"
+          }
+        },
+        "alias": "l"
       }
     },
     "right": {
-      "localRelation": {
-        "schema": "struct\u003ca:int,id:bigint,payload:binary\u003e"
+      "subqueryAlias": {
+        "input": {
+          "localRelation": {
+            "schema": "struct\u003ca:int,id:bigint,payload:binary\u003e"
+          }
+        },
+        "alias": "r"
       }
     },
     "joinCondition": {
@@ -15,11 +25,11 @@
         "functionName": "\u003d",
         "arguments": [{
           "unresolvedAttribute": {
-            "unparsedIdentifier": "id"
+            "unparsedIdentifier": "l.id"
           }
         }, {
           "unresolvedAttribute": {
-            "unparsedIdentifier": "id"
+            "unparsedIdentifier": "r.id"
           }
         }]
       }
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/join_condition.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/join_condition.proto.bin
index a1464a72ea8..84ddc108103 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/join_condition.proto.bin
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/join_condition.proto.bin
@@ -1,5 +1,7 @@
-*k
-$Z" 
struct<id:bigint,a:int,b:double>*Z(&struct<a:int,id:bigint,payload:binary>
-=
-id
-id 
\ No newline at end of file
+*
+,�)
+$Z" struct<id:bigint,a:int,b:double>l2�/
+*Z(&struct<a:int,id:bigint,payload:binary>r
+=
+l.id
+r.id 
\ No newline at end of file
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.json
 
b/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.json
index 28949407af4..36e203a4256 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.json
@@ -1,13 +1,23 @@
 {
   "join": {
     "left": {
-      "localRelation": {
-        "schema": "struct\u003cid:bigint,a:int,b:double\u003e"
+      "subqueryAlias": {
+        "input": {
+          "localRelation": {
+            "schema": "struct\u003cid:bigint,a:int,b:double\u003e"
+          }
+        },
+        "alias": "l"
       }
     },
     "right": {
-      "localRelation": {
-        "schema": "struct\u003ca:int,id:bigint,payload:binary\u003e"
+      "subqueryAlias": {
+        "input": {
+          "localRelation": {
+            "schema": "struct\u003ca:int,id:bigint,payload:binary\u003e"
+          }
+        },
+        "alias": "r"
       }
     },
     "joinCondition": {
@@ -15,11 +25,11 @@
         "functionName": "\u003d",
         "arguments": [{
           "unresolvedAttribute": {
-            "unparsedIdentifier": "a"
+            "unparsedIdentifier": "l.a"
           }
         }, {
           "unresolvedAttribute": {
-            "unparsedIdentifier": "a"
+            "unparsedIdentifier": "r.a"
           }
         }]
       }
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.proto.bin
index 9d0a3ca5d08..c1cc916d327 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.proto.bin
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/join_inner_condition.proto.bin
@@ -1,5 +1,7 @@
-*i
-$Z" 
struct<id:bigint,a:int,b:double>*Z(&struct<a:int,id:bigint,payload:binary>
-=
-a
-a 
\ No newline at end of file
+*}
+,�)
+$Z" struct<id:bigint,a:int,b:double>l2�/
+*Z(&struct<a:int,id:bigint,payload:binary>r
+=
+l.a
+r.a 
\ No newline at end of file
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/unionByName.json
 
b/connector/connect/common/src/test/resources/query-tests/queries/unionByName.json
index 433ba22fa32..9446f0127e9 100644
--- 
a/connector/connect/common/src/test/resources/query-tests/queries/unionByName.json
+++ 
b/connector/connect/common/src/test/resources/query-tests/queries/unionByName.json
@@ -1,13 +1,31 @@
 {
   "setOp": {
     "leftInput": {
-      "localRelation": {
-        "schema": "struct\u003cid:bigint,a:int,b:double\u003e"
+      "drop": {
+        "input": {
+          "localRelation": {
+            "schema": "struct\u003cid:bigint,a:int,b:double\u003e"
+          }
+        },
+        "cols": [{
+          "unresolvedAttribute": {
+            "unparsedIdentifier": "b"
+          }
+        }]
       }
     },
     "rightInput": {
-      "localRelation": {
-        "schema": "struct\u003ca:int,id:bigint,payload:binary\u003e"
+      "drop": {
+        "input": {
+          "localRelation": {
+            "schema": "struct\u003ca:int,id:bigint,payload:binary\u003e"
+          }
+        },
+        "cols": [{
+          "unresolvedAttribute": {
+            "unparsedIdentifier": "payload"
+          }
+        }]
       }
     },
     "setOpType": "SET_OP_TYPE_UNION",
diff --git 
a/connector/connect/common/src/test/resources/query-tests/queries/unionByName.proto.bin
 
b/connector/connect/common/src/test/resources/query-tests/queries/unionByName.proto.bin
index e08dc6d9fdf..522c1bb0a16 100644
Binary files 
a/connector/connect/common/src/test/resources/query-tests/queries/unionByName.proto.bin
 and 
b/connector/connect/common/src/test/resources/query-tests/queries/unionByName.proto.bin
 differ
diff --git 
a/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ProtoToParsedPlanTestSuite.scala
 
b/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ProtoToParsedPlanTestSuite.scala
index 8f47b7b7843..18f656748ac 100644
--- 
a/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ProtoToParsedPlanTestSuite.scala
+++ 
b/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ProtoToParsedPlanTestSuite.scala
@@ -19,13 +19,20 @@ package org.apache.spark.sql.connect
 import java.nio.charset.StandardCharsets
 import java.nio.file.{Files, FileVisitResult, Path, SimpleFileVisitor}
 import java.nio.file.attribute.BasicFileAttributes
+import java.util
 
 import scala.util.{Failure, Success, Try}
 
 import org.apache.spark.SparkFunSuite
 import org.apache.spark.connect.proto
+import org.apache.spark.sql.catalyst.{catalog, QueryPlanningTracker}
+import org.apache.spark.sql.catalyst.analysis.{caseSensitiveResolution, 
Analyzer, FunctionRegistry, Resolver, TableFunctionRegistry}
+import org.apache.spark.sql.catalyst.catalog.SessionCatalog
 import org.apache.spark.sql.connect.planner.SparkConnectPlanner
+import org.apache.spark.sql.connector.catalog.{CatalogManager, Identifier, 
InMemoryCatalog}
 import org.apache.spark.sql.test.SharedSparkSession
+import org.apache.spark.sql.types.StructType
+import org.apache.spark.sql.util.CaseInsensitiveStringMap
 
 // scalastyle:off
 /**
@@ -61,6 +68,30 @@ class ProtoToParsedPlanTestSuite extends SparkFunSuite with 
SharedSparkSession {
   protected val inputFilePath: Path = baseResourcePath.resolve("queries")
   protected val goldenFilePath: Path = 
baseResourcePath.resolve("explain-results")
 
+  private val analyzer = {
+    val inMemoryCatalog = new InMemoryCatalog
+    inMemoryCatalog.initialize("primary", CaseInsensitiveStringMap.empty())
+    inMemoryCatalog.createNamespace(Array("tempdb"), 
util.Collections.emptyMap())
+    inMemoryCatalog.createTable(
+      Identifier.of(Array("tempdb"), "myTable"),
+      new StructType().add("id", "long"),
+      Array.empty,
+      util.Collections.emptyMap())
+
+    val catalogManager = new CatalogManager(
+      inMemoryCatalog,
+      new SessionCatalog(
+        new catalog.InMemoryCatalog(),
+        FunctionRegistry.builtin,
+        TableFunctionRegistry.builtin))
+    catalogManager.setCurrentCatalog("primary")
+    catalogManager.setCurrentNamespace(Array("tempdb"))
+
+    new Analyzer(catalogManager) {
+      override def resolver: Resolver = caseSensitiveResolution
+    }
+  }
+
   // Create the tests.
   Files.walkFileTree(
     inputFilePath,
@@ -82,8 +113,9 @@ class ProtoToParsedPlanTestSuite extends SparkFunSuite with 
SharedSparkSession {
     test(name) {
       val relation = readRelation(file)
       val planner = new SparkConnectPlanner(spark)
-      val catalystPlan = planner.transformRelation(relation)
-      val actual = catalystPlan.canonicalized.treeString
+      val catalystPlan =
+        analyzer.executeAndCheck(planner.transformRelation(relation), new 
QueryPlanningTracker)
+      val actual = normalizeExprIds(catalystPlan).treeString
       val goldenFile = 
goldenFilePath.resolve(relativePath).getParent.resolve(name + ".explain")
       Try(readGoldenFile(goldenFile)) match {
         case Success(expected) if expected == actual => // Test passes.


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

Reply via email to