You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2019/10/23 22:32:39 UTC

[calcite] 04/04: Cosmetic

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

jhyde pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit 1745f752561be04ae34d1fa08593c2d3ba4470e8
Author: Julian Hyde <jh...@apache.org>
AuthorDate: Wed Oct 23 10:43:56 2019 -0700

    Cosmetic
    
    Improve fix for [CALCITE-3259]; the previous fix generated spurious
    newlines in XML reference files such as SqlToRelConverterTest.xml.
    
    Add newlines into some SQL queries added recently in
    SqlToRelConverterTest.
    
    Re-generate SqlToRelConverterTest, putting tests into quasi-alphabetical
    order, to prevent merge conflicts, and re-generate "sql" resources
    without whitespace at end of lines.
---
 .../apache/calcite/sql2rel/InitializerContext.java |   2 +-
 .../java/org/apache/calcite/util/XmlOutput.java    |   4 +-
 .../apache/calcite/test/SqlToRelConverterTest.java |  96 ++++----
 .../org/apache/calcite/test/catalog/Fixture.java   |   1 +
 .../apache/calcite/test/SqlToRelConverterTest.xml  | 243 ++++++++++++---------
 5 files changed, 189 insertions(+), 157 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/sql2rel/InitializerContext.java b/core/src/main/java/org/apache/calcite/sql2rel/InitializerContext.java
index a93fbf4..9c0414e 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/InitializerContext.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/InitializerContext.java
@@ -40,7 +40,7 @@ public interface InitializerContext {
    *   );
    * </pre>
    *
-   * You can use the string format expression "my_udf(a)" and "a + 1"
+   * <p>You can use the string format expression "my_udf(a)" and "a + 1"
    * as the initializer expression of column b and c.
    *
    * <p>Calcite doesn't really need this now because the DDL nodes
diff --git a/core/src/main/java/org/apache/calcite/util/XmlOutput.java b/core/src/main/java/org/apache/calcite/util/XmlOutput.java
index ad59d68..148c3e4 100644
--- a/core/src/main/java/org/apache/calcite/util/XmlOutput.java
+++ b/core/src/main/java/org/apache/calcite/util/XmlOutput.java
@@ -372,11 +372,11 @@ public class XmlOutput {
       out.print(data);
       out.println("]]>");
     } else if (!specials) {
-      out.print(data);
+      out.println(data);
     } else {
       stringEncodeXML(data, out);
+      out.println();
     }
-    out.println();
     out.flush();
     tagsWritten++;
   }
diff --git a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
index cd3421a..9a0945d 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
@@ -2790,100 +2790,102 @@ public class SqlToRelConverterTest extends SqlToRelTestBase {
   }
 
   /**
-   * Test case for <a href="https://issues.apache.org/jira/browse/CALCITE-2962">[CALCITE-2962]
-   * RelStructuredTypeFlattener generates wrong types for nested column when flattenProjection</a>.
+   * Test case for
+   * <a href="https://issues.apache.org/jira/browse/CALCITE-2962">[CALCITE-2962]
+   * RelStructuredTypeFlattener generates wrong types for nested column when
+   * flattenProjection</a>.
    */
   @Test public void testSelectNestedColumnType() {
-    final String sql =
-        "select\n"
-            + "  char_length(coord.\"unit\") as unit_length\n"
-            + "from\n"
-            + "  (\n"
-            + "    select\n"
-            + "      fname,\n"
-            + "      coord\n"
-            + "    from\n"
-            + "      customer.contact_peek\n"
-            + "    where\n"
-            + "      coord.x > 1\n"
-            + "      and coord.y > 1\n"
-            + "  ) as view\n"
-            + "where\n"
-            + "  fname = 'john'";
+    final String sql = "select\n"
+        + "  char_length(coord.\"unit\") as unit_length\n"
+        + "from\n"
+        + "  (\n"
+        + "    select\n"
+        + "      fname,\n"
+        + "      coord\n"
+        + "    from\n"
+        + "      customer.contact_peek\n"
+        + "    where\n"
+        + "      coord.x > 1\n"
+        + "      and coord.y > 1\n"
+        + "  ) as view\n"
+        + "where\n"
+        + "  fname = 'john'";
     sql(sql).ok();
   }
 
   @Test public void testNestedStructFieldAccess() {
-    final String sql =
-        "select dn.skill['others'] from sales.dept_nested dn";
+    final String sql = "select dn.skill['others']\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
   @Test public void testNestedStructPrimitiveFieldAccess() {
-    final String sql =
-        "select dn.skill['others']['a'] from sales.dept_nested dn";
+    final String sql = "select dn.skill['others']['a']\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
   @Test public void testFunctionWithStructInput() {
-    final String sql =
-        "select json_type(skill) from sales.dept_nested";
+    final String sql = "select json_type(skill)\n"
+        + "from sales.dept_nested";
     sql(sql).ok();
   }
 
   @Test public void testAggregateFunctionForStructInput() {
-    final String sql = "select "
-        + "collect(skill) as collect_skill, count(skill) as count_skill, count(*) as count_star, "
-        + "approx_count_distinct(skill) as approx_count_distinct_skill, "
-        + "max(skill) as max_skill, min(skill) as min_skill, "
-        + "any_value(skill) as any_value_skill "
+    final String sql = "select collect(skill) as collect_skill,\n"
+        + "  count(skill) as count_skill, count(*) as count_star,\n"
+        + "  approx_count_distinct(skill) as approx_count_distinct_skill,\n"
+        + "  max(skill) as max_skill, min(skill) as min_skill,\n"
+        + "  any_value(skill) as any_value_skill\n"
         + "from sales.dept_nested";
     sql(sql).ok();
   }
 
   @Test public void testAggregateFunctionForStructInputByName() {
-    final String sql = "select "
-        + "collect(skill) as collect_skill, count(skill) as count_skill, count(*) as count_star, "
-        + "approx_count_distinct(skill) as approx_count_distinct_skill, "
-        + "max(skill) as max_skill, min(skill) as min_skill, "
-        + "any_value(skill) as any_value_skill "
+    final String sql = "select collect(skill) as collect_skill,\n"
+        + "  count(skill) as count_skill, count(*) as count_star,\n"
+        + "  approx_count_distinct(skill) as approx_count_distinct_skill,\n"
+        + "  max(skill) as max_skill, min(skill) as min_skill,\n"
+        + "  any_value(skill) as any_value_skill\n"
         + "from sales.dept_nested group by name";
     sql(sql).ok();
   }
 
   @Test public void testNestedPrimitiveFieldAccess() {
-    final String sql =
-        "select dn.skill['desc'] from sales.dept_nested dn";
+    final String sql = "select dn.skill['desc']\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
   @Test public void testArrayElementNestedPrimitive() {
-    final String sql =
-        "select dn.employees[0]['empno'] from sales.dept_nested dn";
+    final String sql = "select dn.employees[0]['empno']\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
   @Test public void testArrayElementDoublyNestedPrimitive() {
-    final String sql =
-        "select dn.employees[0]['detail']['skills'][0]['type'] from sales.dept_nested dn";
+    final String sql = "select dn.employees[0]['detail']['skills'][0]['type']\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
   @Test public void testArrayElementDoublyNestedStruct() {
-    final String sql =
-        "select dn.employees[0]['detail']['skills'][0] from sales.dept_nested dn";
+    final String sql = "select dn.employees[0]['detail']['skills'][0]\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
   @Test public void testArrayElementThreeTimesNestedStruct() {
-    final String sql =
-        "select dn.employees[0]['detail']['skills'][0]['others'] from sales.dept_nested dn";
+    final String sql = ""
+        + "select dn.employees[0]['detail']['skills'][0]['others']\n"
+        + "from sales.dept_nested dn";
     sql(sql).ok();
   }
 
-
   /**
-   * Test case for <a href="https://issues.apache.org/jira/browse/CALCITE-3003">[CALCITE-3003]
+   * Test case for
+   * <a href="https://issues.apache.org/jira/browse/CALCITE-3003">[CALCITE-3003]
    * AssertionError when GROUP BY nested field</a>.
    */
   @Test public void testGroupByNestedColumn() {
@@ -3556,7 +3558,7 @@ public class SqlToRelConverterTest extends SqlToRelTestBase {
 
   @Test public void testProjectAggregatesIgnoreNullsAndNot() {
     final String sql = "select lead(sal, 4) IGNORE NULLS, lead(sal, 4) over (w)\n"
-            + " from emp window w as (order by empno)";
+        + "from emp window w as (order by empno)";
     sql(sql).ok();
   }
 
diff --git a/core/src/test/java/org/apache/calcite/test/catalog/Fixture.java b/core/src/test/java/org/apache/calcite/test/catalog/Fixture.java
index db39b06..33013bf 100644
--- a/core/src/test/java/org/apache/calcite/test/catalog/Fixture.java
+++ b/core/src/test/java/org/apache/calcite/test/catalog/Fixture.java
@@ -163,4 +163,5 @@ abstract class AbstractFixture {
     this.typeFactory = typeFactory;
   }
 }
+
 // End Fixture.java
diff --git a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
index bdde39f..34ad975 100644
--- a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
@@ -16,6 +16,42 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 <Root>
+    <TestCase name="testAggregateFunctionForStructInput">
+        <Resource name="sql">
+            <![CDATA[select collect(skill) as collect_skill,
+  count(skill) as count_skill, count(*) as count_star,
+  approx_count_distinct(skill) as approx_count_distinct_skill,
+  max(skill) as max_skill, min(skill) as min_skill,
+  any_value(skill) as any_value_skill
+from sales.dept_nested]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(COLLECT_SKILL=[$0], COUNT_SKILL=[$1], COUNT_STAR=[$1], APPROX_COUNT_DISTINCT_SKILL=[$2], MAX_SKILL=[ROW($3.TYPE, $3.DESC, ROW($3.OTHERS.A, $3.OTHERS.B))], MIN_SKILL=[ROW($4.TYPE, $4.DESC, ROW($4.OTHERS.A, $4.OTHERS.B))], ANY_VALUE_SKILL=[ROW($5.TYPE, $5.DESC, ROW($5.OTHERS.A, $5.OTHERS.B))])
+  LogicalAggregate(group=[{}], COLLECT_SKILL=[COLLECT($0)], COUNT_SKILL=[COUNT()], APPROX_COUNT_DISTINCT_SKILL=[COUNT(DISTINCT $0)], MAX_SKILL=[MAX($0)], MIN_SKILL=[MIN($0)], ANY_VALUE_SKILL=[ANY_VALUE($0)])
+    LogicalProject(SKILL=[ROW($2.TYPE, $2.DESC, ROW($2.OTHERS.A, $2.OTHERS.B))])
+      LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
+    <TestCase name="testAggregateFunctionForStructInputByName">
+        <Resource name="sql">
+            <![CDATA[select collect(skill) as collect_skill,
+  count(skill) as count_skill, count(*) as count_star,
+  approx_count_distinct(skill) as approx_count_distinct_skill,
+  max(skill) as max_skill, min(skill) as min_skill,
+  any_value(skill) as any_value_skill
+from sales.dept_nested group by name]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(COLLECT_SKILL=[$1], COUNT_SKILL=[$2], COUNT_STAR=[$2], APPROX_COUNT_DISTINCT_SKILL=[$3], MAX_SKILL=[ROW($4.TYPE, $4.DESC, ROW($4.OTHERS.A, $4.OTHERS.B))], MIN_SKILL=[ROW($5.TYPE, $5.DESC, ROW($5.OTHERS.A, $5.OTHERS.B))], ANY_VALUE_SKILL=[ROW($6.TYPE, $6.DESC, ROW($6.OTHERS.A, $6.OTHERS.B))])
+  LogicalAggregate(group=[{0}], COLLECT_SKILL=[COLLECT($1)], COUNT_SKILL=[COUNT()], APPROX_COUNT_DISTINCT_SKILL=[COUNT(DISTINCT $1)], MAX_SKILL=[MAX($1)], MIN_SKILL=[MIN($1)], ANY_VALUE_SKILL=[ANY_VALUE($1)])
+    LogicalProject(NAME=[$1], SKILL=[ROW($2.TYPE, $2.DESC, ROW($2.OTHERS.A, $2.OTHERS.B))])
+      LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
     <TestCase name="testCase">
         <Resource name="plan">
             <![CDATA[
@@ -213,6 +249,54 @@ from emp
 group by deptno]]>
         </Resource>
     </TestCase>
+    <TestCase name="testArrayElementDoublyNestedPrimitive">
+        <Resource name="sql">
+            <![CDATA[select dn.employees[0]['detail']['skills'][0]['type']
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[ITEM(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0), 'type')])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
+    <TestCase name="testArrayElementDoublyNestedStruct">
+        <Resource name="sql">
+            <![CDATA[select dn.employees[0]['detail']['skills'][0]
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[ROW(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).TYPE, ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).DESC, ROW(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.A, ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.B))])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
+    <TestCase name="testArrayElementNestedPrimitive">
+        <Resource name="sql">
+            <![CDATA[select dn.employees[0]['empno']
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[ITEM(ITEM($3, 0), 'empno')])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
+    <TestCase name="testArrayElementThreeTimesNestedStruct">
+        <Resource name="sql">
+            <![CDATA[select dn.employees[0]['detail']['skills'][0]['others']
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[ROW(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.A, ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.B)])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
     <TestCase name="testCollectionTableWithLateral">
         <Resource name="sql">
             <![CDATA[select * from dept, lateral table(ramp(dept.deptno))]]>
@@ -882,62 +966,6 @@ LogicalProject(ZIP=[$3])
             <![CDATA[select empa.home_address.zip from sales.emp_address empa where empa.home_address.city = 'abc']]>
         </Resource>
     </TestCase>
-    <TestCase name="testNestedStructFieldAccess">
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(EXPR$0=[ROW($2.OTHERS.A, $2.OTHERS.B)])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedStructPrimitiveFieldAccess">
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(EXPR$0=[$2.OTHERS.A])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedPrimitiveFieldAccess">
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(EXPR$0=[$2.DESC])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testArrayElementNestedPrimitive">
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(EXPR$0=[ITEM(ITEM($3, 0), 'empno')])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testArrayElementDoublyNestedPrimitive">
-    <Resource name="plan">
-      <![CDATA[
-LogicalProject(EXPR$0=[ITEM(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0), 'type')])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-    </Resource>
-    </TestCase>
-    <TestCase name="testArrayElementDoublyNestedStruct">
-      <Resource name="plan">
-        <![CDATA[
-LogicalProject(EXPR$0=[ROW(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).TYPE, ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).DESC, ROW(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.A, ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.B))])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-      </Resource>
-    </TestCase>
-    <TestCase name="testArrayElementThreeTimesNestedStruct">
-      <Resource name="plan">
-        <![CDATA[
-LogicalProject(EXPR$0=[ROW(ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.A, ITEM(ITEM(ITEM(ITEM($3, 0), 'detail'), 'skills'), 0).OTHERS.B)])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-      </Resource>
-    </TestCase>
     <TestCase name="testSelectNestedColumnType">
         <Resource name="plan">
             <![CDATA[
@@ -1221,6 +1249,18 @@ LogicalProject(NAME=[$0])
 ]]>
         </Resource>
     </TestCase>
+    <TestCase name="testFunctionWithStructInput">
+        <Resource name="sql">
+            <![CDATA[select json_type(skill)
+from sales.dept_nested]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[JSON_TYPE(ROW($2.TYPE, $2.DESC, ROW($2.OTHERS.A, $2.OTHERS.B)))])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
     <TestCase name="testOrder">
         <Resource name="sql">
             <![CDATA[select empno from emp order by empno, empno desc]]>
@@ -3432,6 +3472,42 @@ LogicalAggregate(group=[{0}], EXPR$1=[SUM($1) FILTER $2], EXPR$2=[COUNT()])
 ]]>
         </Resource>
     </TestCase>
+    <TestCase name="testNestedPrimitiveFieldAccess">
+        <Resource name="sql">
+            <![CDATA[select dn.skill['desc']
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[$2.DESC])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
+    <TestCase name="testNestedStructFieldAccess">
+        <Resource name="sql">
+            <![CDATA[select dn.skill['others']
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[ROW($2.OTHERS.A, $2.OTHERS.B)])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
+    <TestCase name="testNestedStructPrimitiveFieldAccess">
+        <Resource name="sql">
+            <![CDATA[select dn.skill['others']['a']
+from sales.dept_nested dn]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[$2.OTHERS.A])
+  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
+]]>
+        </Resource>
+    </TestCase>
     <TestCase name="testSimplifyExistsAggregateSubQuery">
         <Resource name="sql">
             <![CDATA[SELECT e1.empno
@@ -4747,7 +4823,7 @@ LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], updateColu
     <TestCase name="testUpdateSubQueryWithNotIn">
         <Resource name="sql">
             <![CDATA[update emp
-set empno = 1 where empno not in(
+set empno = 1 where empno not in (
   select empno from emp where empno=2)]]>
         </Resource>
         <Resource name="plan">
@@ -4768,8 +4844,8 @@ LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], updateColu
     <TestCase name="testUpdateSubQueryWithIn1">
         <Resource name="sql">
             <![CDATA[update emp
-set empno = 1 where empno in (
-  select empno from emp where empno=2)]]>
+set empno = 1 where emp.empno in (
+  select emp.empno from emp where emp.empno=2)]]>
         </Resource>
         <Resource name="plan">
             <![CDATA[
@@ -6248,7 +6324,7 @@ LogicalProject(C=[$0], N=[$1])
     <TestCase name="testProjectApproximateAndExactAggregates">
         <Resource name="sql">
             <![CDATA[SELECT empno, count(distinct ename),
-approx_count_distinct(ename) "
+approx_count_distinct(ename)
 FROM emp
 GROUP BY empno]]>
         </Resource>
@@ -6272,51 +6348,4 @@ LogicalProject(EXPR$0=[IGNORE NULLS(LEAD($5, 4))], EXPR$1=[LEAD($5, 4) OVER (ORD
 ]]>
         </Resource>
     </TestCase>
-    <TestCase name="testFunctionWithStructInput">
-        <Resource name="sql">
-            <![CDATA[select json_type(skill) from sales.dept_nested]]>
-        </Resource>
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(EXPR$0=[JSON_TYPE(ROW($2.TYPE, $2.DESC, ROW($2.OTHERS.A, $2.OTHERS.B)))])
-  LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testAggregateFunctionForStructInput">
-        <Resource name="sql">
-            <![CDATA[select
-         collect(skill) as collect_skill, count(skill) as count_skill, count(*) as count_star, 
-         approx_count_distinct(skill) as approx_count_distinct_skill, 
-         max(skill) as max_skill, min(skill) as min_skill, 
-         any_value(skill) as any_value_skill 
-         from sales.dept_nested]]>
-        </Resource>
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(COLLECT_SKILL=[$0], COUNT_SKILL=[$1], COUNT_STAR=[$1], APPROX_COUNT_DISTINCT_SKILL=[$2], MAX_SKILL=[ROW($3.TYPE, $3.DESC, ROW($3.OTHERS.A, $3.OTHERS.B))], MIN_SKILL=[ROW($4.TYPE, $4.DESC, ROW($4.OTHERS.A, $4.OTHERS.B))], ANY_VALUE_SKILL=[ROW($5.TYPE, $5.DESC, ROW($5.OTHERS.A, $5.OTHERS.B))])
-  LogicalAggregate(group=[{}], COLLECT_SKILL=[COLLECT($0)], COUNT_SKILL=[COUNT()], APPROX_COUNT_DISTINCT_SKILL=[COUNT(DISTINCT $0)], MAX_SKILL=[MAX($0)], MIN_SKILL=[MIN($0)], ANY_VALUE_SKILL=[ANY_VALUE($0)])
-    LogicalProject(SKILL=[ROW($2.TYPE, $2.DESC, ROW($2.OTHERS.A, $2.OTHERS.B))])
-      LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testAggregateFunctionForStructInputByName">
-        <Resource name="sql">
-            <![CDATA[select 
-         collect(skill) as collect_skill, count(skill) as count_skill, count(*) as count_star,
-         approx_count_distinct(skill) as approx_count_distinct_skill,
-         max(skill) as max_skill, min(skill) as min_skill,
-         any_value(skill) as any_value_skill 
-         from sales.dept_nested group by name]]>
-        </Resource>
-        <Resource name="plan">
-            <![CDATA[
-LogicalProject(COLLECT_SKILL=[$1], COUNT_SKILL=[$2], COUNT_STAR=[$2], APPROX_COUNT_DISTINCT_SKILL=[$3], MAX_SKILL=[ROW($4.TYPE, $4.DESC, ROW($4.OTHERS.A, $4.OTHERS.B))], MIN_SKILL=[ROW($5.TYPE, $5.DESC, ROW($5.OTHERS.A, $5.OTHERS.B))], ANY_VALUE_SKILL=[ROW($6.TYPE, $6.DESC, ROW($6.OTHERS.A, $6.OTHERS.B))])
-  LogicalAggregate(group=[{0}], COLLECT_SKILL=[COLLECT($1)], COUNT_SKILL=[COUNT()], APPROX_COUNT_DISTINCT_SKILL=[COUNT(DISTINCT $1)], MAX_SKILL=[MAX($1)], MIN_SKILL=[MIN($1)], ANY_VALUE_SKILL=[ANY_VALUE($1)])
-    LogicalProject(NAME=[$1], SKILL=[ROW($2.TYPE, $2.DESC, ROW($2.OTHERS.A, $2.OTHERS.B))])
-      LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]])
-]]>
-        </Resource>
-    </TestCase>
 </Root>