You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by hy...@apache.org on 2020/06/09 01:43:23 UTC

[calcite] branch master updated: Reformat test output xml file

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

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


The following commit(s) were added to refs/heads/master by this push:
     new d98f6c7  Reformat test output xml file
d98f6c7 is described below

commit d98f6c7b1fb2d71133b606b2f178ee80f39525b4
Author: Haisheng Yuan <h....@alibaba-inc.com>
AuthorDate: Mon Jun 8 20:40:31 2020 -0500

    Reformat test output xml file
---
 .../org/apache/calcite/test/TopDownOptTest.java    |   4 +-
 .../org/apache/calcite/test/TopDownOptTest.xml     | 854 ++++++++++-----------
 2 files changed, 407 insertions(+), 451 deletions(-)

diff --git a/core/src/test/java/org/apache/calcite/test/TopDownOptTest.java b/core/src/test/java/org/apache/calcite/test/TopDownOptTest.java
index ce73180..6b6ceb6 100644
--- a/core/src/test/java/org/apache/calcite/test/TopDownOptTest.java
+++ b/core/src/test/java/org/apache/calcite/test/TopDownOptTest.java
@@ -56,13 +56,13 @@ import java.util.List;
  * for details on the schema.
  *
  * <li>Run the test. It should fail. Inspect the output in
- * {@code target/surefire/.../TopDownOptTest.xml}.
+ * {@code build/resources/test/.../TopDownOptTest_actual.xml}.
  *
  * <li>Verify that the "planBefore" is the correct
  * translation of your SQL, and that it contains the pattern on which your rule
  * is supposed to fire. If all is well, replace
  * {@code src/test/resources/.../TopDownOptTest.xml} and
- * with the new {@code target/surefire/.../TopDownOptTest.xml}.
+ * with the new {@code build/resources/test/.../TopDownOptTest_actual.xml}.
  *
  * <li>Run the test again. It should fail again, but this time it should contain
  * a "planAfter" entry for your rule. Verify that your rule applied its
diff --git a/core/src/test/resources/org/apache/calcite/test/TopDownOptTest.xml b/core/src/test/resources/org/apache/calcite/test/TopDownOptTest.xml
index e151e29..8dc333c 100644
--- a/core/src/test/resources/org/apache/calcite/test/TopDownOptTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/TopDownOptTest.xml
@@ -16,65 +16,63 @@
   ~ limitations under the License.
   -->
 <Root>
-    <TestCase name="testSortAgg">
-        <Resource name="sql">
-            <![CDATA[select mgr, count(*) from sales.emp
+  <TestCase name="testSortAgg">
+    <Resource name="sql">
+      <![CDATA[select mgr, count(*) from sales.emp
 group by mgr order by mgr desc nulls last limit 5]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], dir0=[DESC-nulls-last], fetch=[5])
   LogicalAggregate(group=[{0}], EXPR$1=[COUNT()])
     LogicalProject(MGR=[$3])
       LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableLimit(fetch=[5])
   EnumerableSortedAggregate(group=[{3}], EXPR$1=[COUNT()])
     EnumerableSort(sort0=[$3], dir0=[DESC-nulls-last])
       EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProject">
-        <Resource name="sql">
-            <![CDATA[select mgr from sales.emp order by mgr desc nulls last]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProject">
+    <Resource name="sql">
+      <![CDATA[select mgr from sales.emp order by mgr desc nulls last]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], dir0=[DESC-nulls-last])
   LogicalProject(MGR=[$3])
     LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(MGR=[$3])
   EnumerableSort(sort0=[$3], dir0=[DESC-nulls-last])
     EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDerive2">
-        <Resource name="sql">
-            <![CDATA[
-select distinct ename, sal*-2, mgr
-from (select ename, mgr, sal from sales.emp order by ename, mgr, sal limit 100) t
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDerive2">
+    <Resource name="sql">
+      <![CDATA[select distinct ename, sal*-2, mgr
+from (select ename, mgr, sal from sales.emp order by ename, mgr, sal limit 100) t]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalAggregate(group=[{0, 1, 2}])
   LogicalProject(ENAME=[$0], EXPR$1=[*($2, -2)], MGR=[$1])
     LogicalSort(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[ASC], fetch=[100])
       LogicalProject(ENAME=[$1], MGR=[$3], SAL=[$5])
         LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSortedAggregate(group=[{0, 1, 2}])
   EnumerableSort(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[ASC])
     EnumerableProject(ENAME=[$0], EXPR$1=[*($2, -2)], MGR=[$1])
@@ -83,41 +81,37 @@ EnumerableSortedAggregate(group=[{0, 1, 2}])
           EnumerableSort(sort0=[$1], sort1=[$3], sort2=[$5], dir0=[ASC], dir1=[ASC], dir2=[ASC])
             EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectOnRexCall">
-        <Resource name="sql">
-            <![CDATA[
-select ename, sal * -1 as sal, mgr from
-sales.emp order by ename desc, sal desc, mgr desc nulls last
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectOnRexCall">
+    <Resource name="sql">
+      <![CDATA[select ename, sal * -1 as sal, mgr from
+sales.emp order by ename desc, sal desc, mgr desc nulls last]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[DESC], dir1=[DESC], dir2=[DESC-nulls-last])
   LogicalProject(ENAME=[$1], SAL=[*($5, -1)], MGR=[$3])
     LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSort(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[DESC], dir1=[DESC], dir2=[DESC-nulls-last])
   EnumerableProject(ENAME=[$1], SAL=[*($5, -1)], MGR=[$3])
     EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDeriveOnRexCall">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDeriveOnRexCall">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, sal * -1 as sal, max_job from
 (select ename, sal, max(job) as max_job from sales.emp group by ename, sal) t) r
-join sales.bonus s on r.sal=s.sal and r.ename=s.ename
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.sal=s.sal and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], SAL=[$1], MAX_JOB=[$2], ENAME0=[$3], JOB=[$4], SAL0=[$5], COMM=[$6])
   LogicalJoin(condition=[AND(=($1, $5), =($0, $3))], joinType=[inner])
     LogicalProject(ENAME=[$0], SAL=[*($1, -1)], MAX_JOB=[$2])
@@ -126,9 +120,9 @@ LogicalProject(ENAME=[$0], SAL=[$1], MAX_JOB=[$2], ENAME0=[$3], JOB=[$4], SAL0=[
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
     LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableMergeJoin(condition=[AND(=($1, $5), =($0, $3))], joinType=[inner])
   EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
     EnumerableProject(ENAME=[$0], SAL=[*($1, -1)], MAX_JOB=[$2])
@@ -138,57 +132,55 @@ EnumerableMergeJoin(condition=[AND(=($1, $5), =($0, $3))], joinType=[inner])
   EnumerableSort(sort0=[$2], sort1=[$0], dir0=[ASC], dir1=[ASC])
     EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectWhenCastLeadingToMonotonic">
-        <Resource name="sql">
-            <![CDATA[select deptno from sales.emp order by cast(deptno as float) desc]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectWhenCastLeadingToMonotonic">
+    <Resource name="sql">
+      <![CDATA[select deptno from sales.emp order by cast(deptno as float) desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$1], dir0=[DESC])
   LogicalProject(DEPTNO=[$7], EXPR$1=[CAST($7):FLOAT NOT NULL])
     LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(DEPTNO=[$7], EXPR$1=[CAST($7):FLOAT NOT NULL])
   EnumerableSort(sort0=[$7], dir0=[DESC])
     EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectWhenCastLeadingToNonMonotonic">
-        <Resource name="sql">
-            <![CDATA[select deptno from sales.emp order by cast(deptno as varchar) desc]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectWhenCastLeadingToNonMonotonic">
+    <Resource name="sql">
+      <![CDATA[select deptno from sales.emp order by cast(deptno as varchar) desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$1], dir0=[DESC])
   LogicalProject(DEPTNO=[$7], EXPR$1=[CAST($7):VARCHAR NOT NULL])
     LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSort(sort0=[$1], dir0=[DESC])
   EnumerableProject(DEPTNO=[$7], EXPR$1=[CAST($7):VARCHAR NOT NULL])
     EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDeriveWhenCastLeadingToNonMonotonic">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDeriveWhenCastLeadingToNonMonotonic">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, cast(job as numeric) as job, max_sal + 1 from
 (select ename, job, max(sal) as max_sal from sales.emp group by ename, job) t) r
-join sales.bonus s on r.job=s.job and r.ename=s.ename"
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$4], JOB0=[$5], SAL=[$6], COMM=[$7])
   LogicalJoin(condition=[AND(=($3, $8), =($0, $4))], joinType=[inner])
     LogicalProject(ENAME=[$0], JOB=[CAST($1):DECIMAL(19, 0) NOT NULL], EXPR$2=[+($2, 1)], JOB0=[CAST(CAST($1):DECIMAL(19, 0) NOT NULL):DECIMAL(19, 19) NOT NULL])
@@ -198,9 +190,9 @@ LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$4], JOB0=[$5], SAL=[$
     LogicalProject(ENAME=[$0], JOB=[$1], SAL=[$2], COMM=[$3], JOB0=[CAST($1):DECIMAL(19, 19) NOT NULL])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$4], JOB0=[$5], SAL=[$6], COMM=[$7])
   EnumerableMergeJoin(condition=[AND(=($3, $8), =($0, $4))], joinType=[inner])
     EnumerableSort(sort0=[$3], sort1=[$0], dir0=[ASC], dir1=[ASC])
@@ -212,19 +204,17 @@ EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$4], JOB0=[$5], SAL
       EnumerableProject(ENAME=[$0], JOB=[$1], SAL=[$2], COMM=[$3], JOB0=[CAST($1):DECIMAL(19, 19) NOT NULL])
         EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDeriveWhenCastLeadingToMonotonic">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDeriveWhenCastLeadingToMonotonic">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, cast(job as varchar) as job, max_sal + 1 from
 (select ename, job, max(sal) as max_sal from sales.emp group by ename, job) t) r
-join sales.bonus s on r.job=s.job and r.ename=s.ename"
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   LogicalJoin(condition=[AND(=($1, $7), =($0, $3))], joinType=[inner])
     LogicalProject(ENAME=[$0], JOB=[CAST($1):VARCHAR NOT NULL], EXPR$2=[+($2, 1)])
@@ -234,9 +224,9 @@ LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$
     LogicalProject(ENAME=[$0], JOB=[$1], SAL=[$2], COMM=[$3], JOB0=[CAST($1):VARCHAR NOT NULL])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   EnumerableMergeJoin(condition=[AND(=($1, $7), =($0, $3))], joinType=[inner])
     EnumerableProject(ENAME=[$0], JOB=[CAST($1):VARCHAR NOT NULL], EXPR$2=[+($2, 1)])
@@ -247,19 +237,17 @@ EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL
       EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
         EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDerive3">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDerive3">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, cast(job as varchar) as job, sal + 1 from
 (select ename, job, sal from sales.emp limit 100) t) r
-join sales.bonus s on r.job=s.job and r.ename=s.ename
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   LogicalJoin(condition=[AND(=($1, $7), =($0, $3))], joinType=[inner])
     LogicalProject(ENAME=[$0], JOB=[CAST($1):VARCHAR NOT NULL], EXPR$2=[+($2, 1)])
@@ -269,9 +257,9 @@ LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$
     LogicalProject(ENAME=[$0], JOB=[$1], SAL=[$2], COMM=[$3], JOB0=[CAST($1):VARCHAR NOT NULL])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   EnumerableMergeJoin(condition=[AND(=($1, $7), =($0, $3))], joinType=[inner])
     EnumerableProject(ENAME=[$0], JOB=[CAST($1):VARCHAR NOT NULL], EXPR$2=[+($2, 1)])
@@ -283,19 +271,17 @@ EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL
       EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
         EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDerive4">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDerive4">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, cast(job as bigint) as job, sal + 1 from
 (select ename, job, sal from sales.emp limit 100) t) r
-join sales.bonus s on r.job=s.job and r.ename=s.ename
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   LogicalJoin(condition=[AND(=($1, $7), =($0, $3))], joinType=[inner])
     LogicalProject(ENAME=[$0], JOB=[CAST($1):BIGINT NOT NULL], EXPR$2=[+($2, 1)])
@@ -305,9 +291,9 @@ LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$
     LogicalProject(ENAME=[$0], JOB=[$1], SAL=[$2], COMM=[$3], JOB0=[CAST($1):BIGINT NOT NULL])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   EnumerableMergeJoin(condition=[AND(=($1, $7), =($0, $3))], joinType=[inner])
     EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
@@ -319,45 +305,41 @@ EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL
       EnumerableProject(ENAME=[$0], JOB=[$1], SAL=[$2], COMM=[$3], JOB0=[CAST($1):BIGINT NOT NULL])
         EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDerive5">
-        <Resource name="sql">
-            <![CDATA[
-select ename, empno*-1, job from
-(select * from sales.emp order by ename, empno, job limit 10) order by ename, job
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDerive5">
+    <Resource name="sql">
+      <![CDATA[select ename, empno*-1, job from
+(select * from sales.emp order by ename, empno, job limit 10) order by ename, job]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$2], dir0=[ASC], dir1=[ASC])
   LogicalProject(ENAME=[$1], EXPR$1=[*($0, -1)], JOB=[$2])
     LogicalSort(sort0=[$1], sort1=[$0], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[ASC], fetch=[10])
       LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8])
         LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(ENAME=[$1], EXPR$1=[*($0, -1)], JOB=[$2])
   EnumerableSort(sort0=[$1], sort1=[$2], dir0=[ASC], dir1=[ASC])
     EnumerableLimit(fetch=[10])
       EnumerableSort(sort0=[$1], sort1=[$0], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[ASC])
         EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDerive">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDerive">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, max_sal + 1 from
 (select ename, job, max(sal) as max_sal from sales.emp group by ename, job) t) r
-join sales.bonus s on r.job=s.job and r.ename=s.ename
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   LogicalJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
     LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[+($2, 1)])
@@ -366,9 +348,9 @@ LogicalProject(ENAME=[$0], JOB=[$1], EXPR$2=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
     LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableMergeJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
   EnumerableProject(ENAME=[$0], JOB=[$1], EXPR$2=[+($2, 1)])
     EnumerableSortedAggregate(group=[{1, 2}], MAX_SAL=[MAX($5)])
@@ -377,46 +359,42 @@ EnumerableMergeJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
   EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
     EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortProjectDerive6">
-        <Resource name="sql">
-            <![CDATA[
-select comm, deptno, slacker from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortProjectDerive6">
+    <Resource name="sql">
+      <![CDATA[select comm, deptno, slacker from
 (select * from sales.emp order by comm, deptno, slacker limit 10) t
-order by comm, slacker
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by comm, slacker]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$2], dir0=[ASC], dir1=[ASC])
   LogicalProject(COMM=[$6], DEPTNO=[$7], SLACKER=[$8])
     LogicalSort(sort0=[$6], sort1=[$7], sort2=[$8], dir0=[ASC], dir1=[ASC], dir2=[ASC], fetch=[10])
       LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8])
         LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(COMM=[$6], DEPTNO=[$7], SLACKER=[$8])
   EnumerableSort(sort0=[$6], sort1=[$8], dir0=[ASC], dir1=[ASC])
     EnumerableLimit(fetch=[10])
       EnumerableSort(sort0=[$6], sort1=[$7], sort2=[$8], dir0=[ASC], dir1=[ASC], dir2=[ASC])
         EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortFilter">
-        <Resource name="sql">
-            <![CDATA[
-select ename, job, mgr, max_sal from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortFilter">
+    <Resource name="sql">
+      <![CDATA[select ename, job, mgr, max_sal from
 (select ename, job, mgr, max(sal) as max_sal from sales.emp group by ename, job, mgr) as t
 where max_sal > 1000
-order by mgr desc, ename
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by mgr desc, ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], sort1=[$0], dir0=[DESC], dir1=[ASC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], MAX_SAL=[$3])
     LogicalFilter(condition=[>($3, 1000)])
@@ -424,27 +402,25 @@ LogicalSort(sort0=[$2], sort1=[$0], dir0=[DESC], dir1=[ASC])
         LogicalProject(ENAME=[$1], JOB=[$2], MGR=[$3], SAL=[$5])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableFilter(condition=[>($3, 1000)])
   EnumerableSortedAggregate(group=[{1, 2, 3}], MAX_SAL=[MAX($5)])
     EnumerableSort(sort0=[$3], sort1=[$1], sort2=[$2], dir0=[DESC], dir1=[ASC], dir2=[ASC])
       EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testSortFilterDerive">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testSortFilterDerive">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, max_sal from
 (select ename, job, max(sal) as max_sal from sales.emp group by ename, job) t where job > 1000) r
-join sales.bonus s on r.job=s.job and r.ename=s.ename";
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(ENAME=[$0], JOB=[$1], MAX_SAL=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
   LogicalJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
     LogicalProject(ENAME=[$0], JOB=[$1], MAX_SAL=[$2])
@@ -454,9 +430,9 @@ LogicalProject(ENAME=[$0], JOB=[$1], MAX_SAL=[$2], ENAME0=[$3], JOB0=[$4], SAL=[
             LogicalTableScan(table=[[CATALOG, SALES, EMP]])
     LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableMergeJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
   EnumerableSortedAggregate(group=[{1, 2}], MAX_SAL=[MAX($5)])
     EnumerableSort(sort0=[$2], sort1=[$1], dir0=[ASC], dir1=[ASC])
@@ -465,13 +441,13 @@ EnumerableMergeJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
   EnumerableSort(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC])
     EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
+    </Resource>
+  </TestCase>
   <TestCase name="testSortAggPartialKey">
     <Resource name="sql">
       <![CDATA[select mgr,deptno,comm,count(*) from sales.emp
-        group by mgr,deptno,comm
-        order by comm desc nulls last, deptno nulls first]]>
+group by mgr,deptno,comm
+order by comm desc nulls last, deptno nulls first]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -493,8 +469,8 @@ EnumerableProject(MGR=[$0], DEPTNO=[$2], COMM=[$1], EXPR$3=[$3])
   <TestCase name="testSortMergeJoin">
     <Resource name="sql">
       <![CDATA[select * from
-        sales.emp r join sales.bonus s on r.ename=s.ename and r.job=s.job
-        order by r.job desc nulls last, r.ename nulls first]]>
+sales.emp r join sales.bonus s on r.ename=s.ename and r.job=s.job
+order by r.job desc nulls last, r.ename nulls first]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -518,8 +494,8 @@ EnumerableMergeJoin(condition=[AND(=($1, $9), =($2, $10))], joinType=[inner])
   <TestCase name="testSortMergeJoinRight">
     <Resource name="sql">
       <![CDATA[select * from
-        sales.emp r join sales.bonus s on r.ename=s.ename and r.job=s.job
-        order by s.job desc nulls last, s.ename nulls first]]>
+sales.emp r join sales.bonus s on r.ename=s.ename and r.job=s.job
+order by s.job desc nulls last, s.ename nulls first]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -543,8 +519,8 @@ EnumerableMergeJoin(condition=[AND(=($1, $9), =($2, $10))], joinType=[inner])
   <TestCase name="testMergeJoinDeriveLeft1">
     <Resource name="sql">
       <![CDATA[select * from
-        (select ename, job, max(sal) from sales.emp group by ename, job) r
-        join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+(select ename, job, max(sal) from sales.emp group by ename, job) r
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -570,8 +546,8 @@ EnumerableMergeJoin(condition=[AND(=($1, $4), =($0, $3))], joinType=[inner])
   <TestCase name="testMergeJoinDeriveLeft2">
     <Resource name="sql">
       <![CDATA[select * from
-        (select ename, job, mgr, max(sal) from sales.emp group by ename, job, mgr) r
-        join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
+(select ename, job, mgr, max(sal) from sales.emp group by ename, job, mgr) r
+join sales.bonus s on r.job=s.job and r.ename=s.ename]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -597,8 +573,8 @@ EnumerableMergeJoin(condition=[AND(=($1, $5), =($0, $4))], joinType=[inner])
   <TestCase name="testMergeJoinDeriveRight1">
     <Resource name="sql">
       <![CDATA[select * from sales.bonus s join
-        (select ename, job, max(sal) from sales.emp group by ename, job) r
-        on r.job=s.job and r.ename=s.ename]]>
+(select ename, job, max(sal) from sales.emp group by ename, job) r
+on r.job=s.job and r.ename=s.ename]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -624,8 +600,8 @@ EnumerableMergeJoin(condition=[AND(=($1, $5), =($0, $4))], joinType=[inner])
   <TestCase name="testMergeJoinDeriveRight2">
     <Resource name="sql">
       <![CDATA[select * from sales.bonus s join
-        (select ename, job, mgr, max(sal) from sales.emp group by ename, job, mgr) r
-        on r.job=s.job and r.ename=s.ename]]>
+(select ename, job, mgr, max(sal) from sales.emp group by ename, job, mgr) r
+on r.job=s.job and r.ename=s.ename]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -648,44 +624,40 @@ EnumerableMergeJoin(condition=[AND(=($1, $5), =($0, $4))], joinType=[inner])
 ]]>
     </Resource>
   </TestCase>
-    <TestCase name="testHashJoinFullOuterJoinNotPushDownSort">
-        <Resource name="sql">
-            <![CDATA[
-"select * from
+  <TestCase name="testHashJoinFullOuterJoinNotPushDownSort">
+    <Resource name="sql">
+      <![CDATA[select * from
 sales.emp r full outer join sales.bonus s on r.ename=s.ename and r.job=s.job
-order by r.job desc nulls last, r.ename nulls first
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.job desc nulls last, r.ename nulls first]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], sort1=[$1], dir0=[DESC-nulls-last], dir1=[ASC-nulls-first])
   LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], ENAME0=[$9], JOB0=[$10], SAL0=[$11], COMM0=[$12])
     LogicalJoin(condition=[AND(=($1, $9), =($2, $10))], joinType=[full])
       LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSort(sort0=[$2], sort1=[$1], dir0=[DESC-nulls-last], dir1=[ASC-nulls-first])
   EnumerableHashJoin(condition=[AND(=($1, $9), =($2, $10))], joinType=[full])
     EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
     EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinLeftOuterJoinPushDownSort">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinLeftOuterJoinPushDownSort">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select contactno, email from customer.contact_peek) r left outer join
 (select acctno, type from customer.account) s
 on r.contactno=s.acctno and r.email=s.type
-order by r.contactno desc, r.email desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.contactno desc, r.email desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
   LogicalProject(CONTACTNO=[$0], EMAIL=[$1], ACCTNO=[$2], TYPE=[$3])
     LogicalJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[left])
@@ -694,9 +666,9 @@ LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
       LogicalProject(ACCTNO=[$0], TYPE=[$1])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableHashJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[left])
   EnumerableProject(CONTACTNO=[$0], EMAIL=[$3])
     EnumerableSort(sort0=[$0], sort1=[$3], dir0=[DESC], dir1=[DESC])
@@ -704,19 +676,18 @@ EnumerableHashJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[left])
   EnumerableProject(ACCTNO=[$0], TYPE=[$1])
     EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinLeftOuterJoinPushDownSort2">
-        <Resource name="sql">
-            <![CDATA[
-select * from
-customer.contact_peek r left outer join customer.account s
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinLeftOuterJoinPushDownSort2">
+    <Resource name="sql">
+      <![CDATA[select * from
+customer.contact_peek r left outer join
+customer.account s
 on r.contactno=s.acctno and r.email=s.type
-order by r.fname desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.fname desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   LogicalSort(sort0=[$1], dir0=[DESC])
     LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[$7], COORD_NE8=[$8], COORD_NE9=[$9], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
@@ -725,9 +696,9 @@ LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5
           LogicalTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   EnumerableHashJoin(condition=[AND(=($0, $10), =($3, $11))], joinType=[left])
     EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4.X], Y=[$4.Y], unit=[$4.unit], M=[$5.M], A=[$5.SUB.A], B=[$5.SUB.B])
@@ -735,20 +706,18 @@ EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=
         EnumerableTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
     EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinInnerJoinPushDownSort">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinInnerJoinPushDownSort">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select contactno, email from customer.contact_peek) r inner join
 (select acctno, type from customer.account) s
 on r.contactno=s.acctno and r.email=s.type
-order by r.contactno desc, r.email desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.contactno desc, r.email desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
   LogicalProject(CONTACTNO=[$0], EMAIL=[$1], ACCTNO=[$2], TYPE=[$3])
     LogicalJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[inner])
@@ -757,9 +726,9 @@ LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
       LogicalProject(ACCTNO=[$0], TYPE=[$1])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableHashJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[inner])
   EnumerableProject(CONTACTNO=[$0], EMAIL=[$3])
     EnumerableSort(sort0=[$0], sort1=[$3], dir0=[DESC], dir1=[DESC])
@@ -767,20 +736,18 @@ EnumerableHashJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[inner])
   EnumerableProject(ACCTNO=[$0], TYPE=[$1])
     EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinRightOuterJoinPushDownSort">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinRightOuterJoinPushDownSort">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select contactno, email from customer.contact_peek) r right outer join
 (select acctno, type from customer.account) s
 on r.contactno=s.acctno and r.email=s.type
-order by s.acctno desc, s.type desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by s.acctno desc, s.type desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], sort1=[$3], dir0=[DESC], dir1=[DESC])
   LogicalProject(CONTACTNO=[$0], EMAIL=[$1], ACCTNO=[$2], TYPE=[$3])
     LogicalJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[right])
@@ -789,9 +756,9 @@ LogicalSort(sort0=[$2], sort1=[$3], dir0=[DESC], dir1=[DESC])
       LogicalProject(ACCTNO=[$0], TYPE=[$1])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSort(sort0=[$2], sort1=[$3], dir0=[DESC], dir1=[DESC])
   EnumerableHashJoin(condition=[AND(=($0, $2), =($1, $3))], joinType=[right])
     EnumerableProject(CONTACTNO=[$0], EMAIL=[$3])
@@ -799,19 +766,17 @@ EnumerableSort(sort0=[$2], sort1=[$3], dir0=[DESC], dir1=[DESC])
     EnumerableProject(ACCTNO=[$0], TYPE=[$1])
       EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinTraitDerivation">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinTraitDerivation">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, mgr from sales.emp order by ename desc, job desc, mgr limit 10) r
 join sales.bonus s on r.ename=s.ename and r.job=s.job
-order by r.ename desc, r.job desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.ename desc, r.job desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
     LogicalJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
@@ -820,9 +785,9 @@ LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableHashJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
   EnumerableLimit(fetch=[10])
     EnumerableProject(ENAME=[$1], JOB=[$2], MGR=[$3])
@@ -830,19 +795,17 @@ EnumerableHashJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
         EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
   EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinTraitDerivation2">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinTraitDerivation2">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, mgr from sales.emp order by mgr desc limit 10) r
 join sales.bonus s on r.ename=s.ename and r.job=s.job
-order by r.mgr desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.mgr desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], dir0=[DESC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
     LogicalJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
@@ -851,9 +814,9 @@ LogicalSort(sort0=[$2], dir0=[DESC])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableHashJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
   EnumerableLimit(fetch=[10])
     EnumerableProject(ENAME=[$1], JOB=[$2], MGR=[$3])
@@ -861,19 +824,17 @@ EnumerableHashJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
         EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
   EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testHashJoinTraitDerivationNegativeCase">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testHashJoinTraitDerivationNegativeCase">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, mgr from sales.emp order by mgr desc limit 10) r
 join sales.bonus s on r.ename=s.ename and r.job=s.job
-order by r.mgr
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.mgr]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], dir0=[ASC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
     LogicalJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
@@ -882,9 +843,9 @@ LogicalSort(sort0=[$2], dir0=[ASC])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSort(sort0=[$2], dir0=[ASC])
   EnumerableHashJoin(condition=[AND(=($0, $3), =($1, $4))], joinType=[inner])
     EnumerableLimit(fetch=[10])
@@ -893,19 +854,17 @@ EnumerableSort(sort0=[$2], dir0=[ASC])
           EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
     EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinTraitDerivation">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinTraitDerivation">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, mgr from sales.emp order by ename desc, job desc, mgr limit 10) r
 join sales.bonus s on r.ename>s.ename and r.job<s.job
-order by r.ename desc, r.job desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.ename desc, r.job desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
     LogicalJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner])
@@ -914,9 +873,9 @@ LogicalSort(sort0=[$0], sort1=[$1], dir0=[DESC], dir1=[DESC])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableNestedLoopJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner])
   EnumerableLimit(fetch=[10])
     EnumerableProject(ENAME=[$1], JOB=[$2], MGR=[$3])
@@ -924,19 +883,17 @@ EnumerableNestedLoopJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner]
         EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
   EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinTraitDerivation2">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinTraitDerivation2">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, mgr from sales.emp order by mgr limit 10) r
 join sales.bonus s on r.ename>s.ename and r.job<s.job
-order by r.mgr
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.mgr]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], dir0=[ASC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
     LogicalJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner])
@@ -945,9 +902,9 @@ LogicalSort(sort0=[$2], dir0=[ASC])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableNestedLoopJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner])
   EnumerableLimit(fetch=[10])
     EnumerableProject(ENAME=[$1], JOB=[$2], MGR=[$3])
@@ -955,19 +912,17 @@ EnumerableNestedLoopJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner]
         EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
   EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinTraitDerivationNegativeCase">
-        <Resource name="sql">
-            <![CDATA[
-select * from
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinTraitDerivationNegativeCase">
+    <Resource name="sql">
+      <![CDATA[select * from
 (select ename, job, mgr from sales.emp order by mgr limit 10) r
 join sales.bonus s on r.ename>s.ename and r.job<s.job
-order by r.mgr desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.mgr desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], dir0=[DESC])
   LogicalProject(ENAME=[$0], JOB=[$1], MGR=[$2], ENAME0=[$3], JOB0=[$4], SAL=[$5], COMM=[$6])
     LogicalJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner])
@@ -976,9 +931,9 @@ LogicalSort(sort0=[$2], dir0=[DESC])
           LogicalTableScan(table=[[CATALOG, SALES, EMP]])
       LogicalTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableSort(sort0=[$2], dir0=[DESC])
   EnumerableNestedLoopJoin(condition=[AND(>($0, $3), <($1, $4))], joinType=[inner])
     EnumerableLimit(fetch=[10])
@@ -987,20 +942,18 @@ EnumerableSort(sort0=[$2], dir0=[DESC])
           EnumerableTableScan(table=[[CATALOG, SALES, EMP]])
     EnumerableTableScan(table=[[CATALOG, SALES, BONUS]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinLeftOuterJoinPushDownSort">
-        <Resource name="sql">
-            <![CDATA[
-select * from
-customer.contact_peek r left outer join
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinLeftOuterJoinPushDownSort">
+    <Resource name="sql">
+      <![CDATA[select * from
+ customer.contact_peek r left outer join
 customer.account s
 on r.contactno>s.acctno and r.email<s.type
-order by r.contactno desc, r.email desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.contactno desc, r.email desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   LogicalSort(sort0=[$0], sort1=[$3], dir0=[DESC], dir1=[DESC])
     LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[$7], COORD_NE8=[$8], COORD_NE9=[$9], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
@@ -1009,9 +962,9 @@ LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5
           LogicalTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   EnumerableNestedLoopJoin(condition=[AND(>($0, $10), <($3, $11))], joinType=[left])
     EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4.X], Y=[$4.Y], unit=[$4.unit], M=[$5.M], A=[$5.SUB.A], B=[$5.SUB.B])
@@ -1019,20 +972,18 @@ EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=
         EnumerableTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
     EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinLeftOuterJoinPushDownSort2">
-        <Resource name="sql">
-            <![CDATA[
-select * from
-customer.contact_peek r left outer join
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinLeftOuterJoinPushDownSort2">
+    <Resource name="sql">
+      <![CDATA[select * from
+ customer.contact_peek r left outer join
 customer.account s
 on r.contactno>s.acctno and r.email<s.type
-order by r.fname desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by r.fname desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   LogicalSort(sort0=[$1], dir0=[DESC])
     LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[$7], COORD_NE8=[$8], COORD_NE9=[$9], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
@@ -1041,9 +992,9 @@ LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5
           LogicalTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   EnumerableNestedLoopJoin(condition=[AND(>($0, $10), <($3, $11))], joinType=[left])
     EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4.X], Y=[$4.Y], unit=[$4.unit], M=[$5.M], A=[$5.SUB.A], B=[$5.SUB.B])
@@ -1051,20 +1002,18 @@ EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=
         EnumerableTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
     EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinLeftOuterJoinSortKeyOnRightInput">
-        <Resource name="sql">
-            <![CDATA[
-select * from
-(select contactno, email from customer.contact_peek) r left outer join
-(select acctno, type from customer.account) s
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinLeftOuterJoinSortKeyOnRightInput">
+    <Resource name="sql">
+      <![CDATA[select * from
+ customer.contact_peek r left outer join
+customer.account s
 on r.contactno>s.acctno and r.email<s.type
-order by s.acctno desc, s.type desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by s.acctno desc, s.type desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   LogicalSort(sort0=[$10], sort1=[$11], dir0=[DESC], dir1=[DESC])
     LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[$7], COORD_NE8=[$8], COORD_NE9=[$9], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
@@ -1073,9 +1022,9 @@ LogicalProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5
           LogicalTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=[$5], unit=[$6], COORD_NE=[ROW($7, ROW($8, $9))], ACCTNO=[$10], TYPE=[$11], BALANCE=[$12])
   EnumerableSort(sort0=[$10], sort1=[$11], dir0=[DESC], dir1=[DESC])
     EnumerableNestedLoopJoin(condition=[AND(>($0, $10), <($3, $11))], joinType=[left])
@@ -1083,20 +1032,18 @@ EnumerableProject(CONTACTNO=[$0], FNAME=[$1], LNAME=[$2], EMAIL=[$3], X=[$4], Y=
         EnumerableTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
       EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
-    <TestCase name="testNestedLoopJoinRightOuterJoinSortPushDown">
-        <Resource name="sql">
-            <![CDATA[
-select * from
-(select contactno, email from customer.contact_peek) r right outer join
-(select acctno, type from customer.account) s
+    </Resource>
+  </TestCase>
+  <TestCase name="testNestedLoopJoinRightOuterJoinSortPushDown">
+    <Resource name="sql">
+      <![CDATA[select r.contactno, r.email, s.acctno, s.type from
+ customer.contact_peek r right outer join
+customer.account s
 on r.contactno>s.acctno and r.email<s.type
-order by s.acctno desc, s.type desc
-]]>
-        </Resource>
-        <Resource name="planBefore">
-            <![CDATA[
+order by s.acctno desc, s.type desc]]>
+    </Resource>
+    <Resource name="planBefore">
+      <![CDATA[
 LogicalSort(sort0=[$2], sort1=[$3], dir0=[DESC], dir1=[DESC])
   LogicalProject(CONTACTNO=[$0], EMAIL=[$3], ACCTNO=[$10], TYPE=[$11])
     LogicalJoin(condition=[AND(>($0, $10), <($3, $11))], joinType=[right])
@@ -1104,9 +1051,9 @@ LogicalSort(sort0=[$2], sort1=[$3], dir0=[DESC], dir1=[DESC])
         LogicalTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
       LogicalTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-        <Resource name="planAfter">
-            <![CDATA[
+    </Resource>
+    <Resource name="planAfter">
+      <![CDATA[
 EnumerableProject(CONTACTNO=[$0], EMAIL=[$3], ACCTNO=[$10], TYPE=[$11])
   EnumerableSort(sort0=[$10], sort1=[$11], dir0=[DESC], dir1=[DESC])
     EnumerableNestedLoopJoin(condition=[AND(>($0, $10), <($3, $11))], joinType=[right])
@@ -1114,11 +1061,13 @@ EnumerableProject(CONTACTNO=[$0], EMAIL=[$3], ACCTNO=[$10], TYPE=[$11])
         EnumerableTableScan(table=[[CATALOG, CUSTOMER, CONTACT_PEEK]])
       EnumerableTableScan(table=[[CATALOG, CUSTOMER, ACCOUNT]])
 ]]>
-        </Resource>
-    </TestCase>
+    </Resource>
+  </TestCase>
   <TestCase name="testCorrelateInnerJoinDeriveLeft">
     <Resource name="sql">
-      <![CDATA[select * from emp e join dept d on e.deptno=d.deptno order by e.ename]]>
+      <![CDATA[select * from emp e
+join dept d on e.deptno=d.deptno
+order by e.ename]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -1141,7 +1090,9 @@ EnumerableCorrelate(correlation=[$cor0], joinType=[inner], requiredColumns=[{7}]
   </TestCase>
   <TestCase name="testCorrelateInnerJoinNoDerive">
     <Resource name="sql">
-      <![CDATA[select * from emp e join dept d on e.deptno=d.deptno order by e.ename, d.name]]>
+      <![CDATA[select * from emp e
+join dept d on e.deptno=d.deptno
+order by e.ename, d.name]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -1164,7 +1115,9 @@ EnumerableSort(sort0=[$1], sort1=[$10], dir0=[ASC], dir1=[ASC])
   </TestCase>
   <TestCase name="testCorrelateLeftJoinDeriveLeft">
     <Resource name="sql">
-      <![CDATA[select * from emp e left join dept d on e.deptno=d.deptno order by e.ename]]>
+      <![CDATA[select * from emp e
+left join dept d on e.deptno=d.deptno
+order by e.ename]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -1187,7 +1140,9 @@ EnumerableCorrelate(correlation=[$cor0], joinType=[left], requiredColumns=[{7}])
   </TestCase>
   <TestCase name="testCorrelateLeftJoinNoDerive">
     <Resource name="sql">
-      <![CDATA[select * from emp e left join dept d on e.deptno=d.deptno order by e.ename, d.name]]>
+      <![CDATA[select * from emp e
+left join dept d on e.deptno=d.deptno
+order by e.ename, d.name]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
@@ -1210,8 +1165,9 @@ EnumerableSort(sort0=[$1], sort1=[$10], dir0=[ASC], dir1=[ASC])
   </TestCase>
   <TestCase name="testCorrelateSemiJoinDeriveLeft">
     <Resource name="sql">
-      <![CDATA[select * from dept d where exists
-            (select 1 from emp e where e.deptno=d.deptno) order by d.name]]>
+      <![CDATA[select * from dept d
+where exists (select 1 from emp e where e.deptno=d.deptno)
+order by d.name]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[