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

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

commit 93a1c5aba6f17b93a52ab4367f625103a904f1ad
Author: Hanumath Rao Maduri <hanu....@gmail.com>
AuthorDate: Fri Aug 3 13:56:44 2018 -0700

    DRILL-6671: Multi level lateral unnest join is throwing an exception during 
materializing the plan.
    
    closes #1426
---
 .../drill/exec/planner/fragment/Materializer.java  |  19 ++--
 .../drill/exec/planner/physical/UnnestPrel.java    |  10 ++
 .../visitor/LateralUnnestRowIDVisitor.java         |  54 ++++++++-
 .../impl/lateraljoin/TestE2EUnnestAndLateral.java  |  81 ++++++++++----
 .../impl/lateraljoin/TestLateralPlans.java         | 124 ++++++++++-----------
 5 files changed, 189 insertions(+), 99 deletions(-)

diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/Materializer.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/Materializer.java
index 987e65c..2f7fdce 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/Materializer.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/Materializer.java
@@ -17,6 +17,8 @@
  */
 package org.apache.drill.exec.planner.fragment;
 
+import java.util.ArrayDeque;
+import java.util.Deque;
 import java.util.List;
 
 import org.apache.drill.common.exceptions.ExecutionSetupException;
@@ -116,29 +118,28 @@ public class Materializer extends 
AbstractPhysicalVisitor<PhysicalOperator, Mate
 
     children.add(op.getLeft().accept(this, iNode));
     children.add(op.getRight().accept(this, iNode));
-    UnnestPOP unnestInLeftInput = iNode.getUnnest();
+    UnnestPOP unnestForThisLateral = iNode.getUnnest();
 
     PhysicalOperator newOp = op.getNewWithChildren(children);
     newOp.setCost(op.getCost());
     newOp.setOperatorId(Short.MAX_VALUE & op.getOperatorId());
 
-    ((LateralJoinPOP)newOp).setUnnestForLateralJoin(unnestInLeftInput);
-
+    ((LateralJoinPOP) newOp).setUnnestForLateralJoin(unnestForThisLateral);
     return newOp;
   }
 
   @Override
   public PhysicalOperator visitUnnest(UnnestPOP unnest, IndexedFragmentNode 
value) throws ExecutionSetupException {
     PhysicalOperator newOp = visitOp(unnest, value);
-    value.addUnnest((UnnestPOP)newOp);
+    value.addUnnest((UnnestPOP) newOp);
     return newOp;
   }
 
   public static class IndexedFragmentNode{
-    final Wrapper info;
-    final int minorFragmentId;
+    private final Wrapper info;
+    private final int minorFragmentId;
 
-    UnnestPOP unnest = null;
+    private final Deque<UnnestPOP> unnest = new ArrayDeque<>();
 
     public IndexedFragmentNode(int minorFragmentId, Wrapper info) {
       super();
@@ -163,11 +164,11 @@ public class Materializer extends 
AbstractPhysicalVisitor<PhysicalOperator, Mate
     }
 
     public void addUnnest(UnnestPOP unnest) {
-      this.unnest = unnest;
+      this.unnest.addFirst(unnest);
     }
 
     public UnnestPOP getUnnest() {
-      return this.unnest;
+      return this.unnest.removeFirst();
     }
 
   }
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrel.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrel.java
index 274f27a..a344915 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrel.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/UnnestPrel.java
@@ -25,6 +25,7 @@ import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexFieldAccess;
 import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexShuttle;
 import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.drill.common.expression.SchemaPath;
 import org.apache.drill.exec.physical.base.PhysicalOperator;
@@ -86,6 +87,15 @@ public class UnnestPrel extends DrillUnnestRelBase 
implements Prel {
   }
 
   @Override
+  public RelNode accept(RexShuttle shuttle) {
+    RexNode ref = shuttle.apply(this.ref);
+    if (this.ref == ref) {
+      return this;
+    }
+    return new UnnestPrel(getCluster(), traitSet, rowType, ref);
+  }
+
+  @Override
   public Prel prepareForLateralUnnestPipeline(List<RelNode> children) {
     RelDataTypeFactory typeFactory = this.getCluster().getTypeFactory();
     List<String> fieldNames = new ArrayList<>();
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/LateralUnnestRowIDVisitor.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/LateralUnnestRowIDVisitor.java
index dc4af5b..7734d90 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/LateralUnnestRowIDVisitor.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/LateralUnnestRowIDVisitor.java
@@ -19,11 +19,18 @@ package org.apache.drill.exec.planner.physical.visitor;
 
 import com.google.common.collect.Lists;
 import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.core.CorrelationId;
+import org.apache.calcite.rel.rules.ProjectCorrelateTransposeRule;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexShuttle;
+import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.drill.exec.planner.physical.LateralJoinPrel;
 import org.apache.drill.exec.planner.physical.Prel;
 import org.apache.drill.exec.planner.physical.UnnestPrel;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * LateralUnnestRowIDVisitor traverses the physical plan and modifies all the 
operators in the
@@ -59,16 +66,55 @@ public class LateralUnnestRowIDVisitor extends 
BasePrelVisitor<Prel, Boolean, Ru
   }
 
   @Override
-  public Prel visitLateral(LateralJoinPrel prel, Boolean value) throws 
RuntimeException {
+  public Prel visitLateral(LateralJoinPrel prel, Boolean isRightOfLateral) 
throws RuntimeException {
     List<RelNode> children = Lists.newArrayList();
-    children.add(((Prel)prel.getInput(0)).accept(this, value));
+    children.add(((Prel) prel.getInput(0)).accept(this, isRightOfLateral));
     children.add(((Prel) prel.getInput(1)).accept(this, true));
 
-    return (Prel) prel.copy(prel.getTraitSet(), children);
+    if (!isRightOfLateral) {
+      return (Prel) prel.copy(prel.getTraitSet(), children);
+    } else {
+      //Adjust the column numbering due to an additional column 
"$drill_implicit_field$" is added to the inputs.
+      Map<Integer, Integer> requiredColsMap = new HashMap<>();
+      for (Integer corrColIndex : prel.getRequiredColumns()) {
+        requiredColsMap.put(corrColIndex, corrColIndex + 1);
+      }
+      ImmutableBitSet requiredColumns = prel.getRequiredColumns().shift(1);
+
+      CorrelationId corrId = prel.getCluster().createCorrel();
+      RexCorrelVariable updatedCorrel =
+              (RexCorrelVariable) prel.getCluster().getRexBuilder().makeCorrel(
+                      children.get(0).getRowType(),
+                      corrId);
+      RelNode rightChild = children.get(1).accept(
+              new CorrelateVarReplacer(
+                      new 
ProjectCorrelateTransposeRule.RexFieldAccessReplacer(prel.getCorrelationId(),
+                              updatedCorrel, 
prel.getCluster().getRexBuilder(), requiredColsMap)));
+      return (Prel) prel.copy(prel.getTraitSet(), children.get(0), rightChild,
+              corrId, requiredColumns, prel.getJoinType());
+    }
   }
 
   @Override
-  public Prel visitUnnest(UnnestPrel prel, Boolean value) throws 
RuntimeException {
+  public Prel visitUnnest(UnnestPrel prel, Boolean isRightOfLateral) throws 
RuntimeException {
     return prel.prepareForLateralUnnestPipeline(null);
   }
+
+  /**
+   * Visitor for RelNodes which applies specified {@link RexShuttle} visitor
+   * for every node in the tree.
+   */
+  public static class CorrelateVarReplacer extends 
ProjectCorrelateTransposeRule.RelNodesExprsHandler {
+    protected final RexShuttle rexVisitor;
+
+    public CorrelateVarReplacer(RexShuttle rexVisitor) {
+      super(rexVisitor);
+      this.rexVisitor = rexVisitor;
+    }
+
+    @Override
+    public RelNode visit(RelNode other) {
+      return super.visit(other.accept(rexVisitor));
+    }
+  }
 }
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestE2EUnnestAndLateral.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestE2EUnnestAndLateral.java
index 0d752a2..0283ade 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestE2EUnnestAndLateral.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestE2EUnnestAndLateral.java
@@ -58,40 +58,40 @@ public class TestE2EUnnestAndLateral extends ClusterTest {
 
   @Test
   public void testLateral_WithLimitInSubQuery() throws Exception {
-    String Sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
+    String sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) LIMIT 1) orders";
-    runAndLog(Sql);
+    runAndLog(sql);
   }
 
   @Test
   public void testLateral_WithFilterInSubQuery() throws Exception {
-    String Sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
+    String sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) WHERE t.ord.o_amount > 10) orders";
-    runAndLog(Sql);
+    runAndLog(sql);
   }
 
   @Test
   public void testLateral_WithFilterAndLimitInSubQuery() throws Exception {
-    String Sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
+    String sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) WHERE t.ord.o_amount > 10 LIMIT 1) orders";
-    runAndLog(Sql);
+    runAndLog(sql);
   }
 
   @Test
   public void testLateral_WithTopNInSubQuery() throws Exception {
     runAndLog("alter session set `planner.enable_topn`=false");
 
-    String Sql = "SELECT customer.c_name, orders.o_id, orders.o_amount " +
+    String sql = "SELECT customer.c_name, orders.o_id, orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) ORDER BY " +
       "o_amount DESC LIMIT 1) orders";
 
     try {
       testBuilder()
-         .sqlQuery(Sql)
+         .sqlQuery(sql)
          .unOrdered()
          .baselineColumns("c_name", "o_id", "o_amount")
          .baselineValues("customer1", 3.0,  294.5)
@@ -113,14 +113,14 @@ public class TestE2EUnnestAndLateral extends ClusterTest {
 
     runAndLog("alter session set `planner.enable_topn`=false");
 
-    String Sql = "SELECT customer.c_name, orders.o_id, orders.o_amount " +
+    String sql = "SELECT customer.c_name, orders.o_id, orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) ORDER BY " +
       "o_amount DESC LIMIT 1) orders";
 
     try {
       testBuilder()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .unOrdered()
         .baselineColumns("c_name", "o_id", "o_amount")
         .baselineValues("customer1", 3.0,  294.5)
@@ -135,13 +135,13 @@ public class TestE2EUnnestAndLateral extends ClusterTest {
 
   @Test
   public void testLateral_WithSortInSubQuery() throws Exception {
-    String Sql = "SELECT customer.c_name, orders.o_id, orders.o_amount " +
+    String sql = "SELECT customer.c_name, orders.o_id, orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) ORDER BY " +
       "o_amount DESC) orders WHERE customer.c_id = 1.0";
 
     testBuilder()
-      .sqlQuery(Sql)
+      .sqlQuery(sql)
       .ordered()
       .baselineColumns("c_name", "o_id", "o_amount")
       .baselineValues("customer1", 3.0,  294.5)
@@ -152,28 +152,61 @@ public class TestE2EUnnestAndLateral extends ClusterTest {
 
   @Test
   public void testOuterApply_WithFilterAndLimitInSubQuery() throws Exception {
-    String Sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
+    String sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer OUTER APPLY " +
       "(SELECT t.ord.o_id as o_id , t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) WHERE t.ord.o_amount > 10 LIMIT 1) orders";
-    runAndLog(Sql);
+    runAndLog(sql);
   }
 
   @Test
   public void testLeftLateral_WithFilterAndLimitInSubQuery() throws Exception {
-    String Sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
+    String sql = "SELECT customer.c_name, customer.c_address, orders.o_id, 
orders.o_amount " +
       "FROM cp.`lateraljoin/nested-customer.parquet` customer LEFT JOIN 
LATERAL " +
       "(SELECT t.ord.o_id as o_id, t.ord.o_amount as o_amount FROM 
UNNEST(customer.orders) t(ord) WHERE t.ord.o_amount > 10 LIMIT 1) orders ON 
TRUE";
-    runAndLog(Sql);
+    runAndLog(sql);
   }
 
   @Test
   public void testMultiUnnestAtSameLevel() throws Exception {
-    String Sql = "EXPLAIN PLAN FOR SELECT customer.c_name, customer.c_address, 
U1.order_id, U1.order_amt," +
-      " U1.itemName, U1.itemNum" + " FROM 
cp.`lateraljoin/nested-customer.parquet` customer, LATERAL" +
-      " (SELECT t.ord.o_id AS order_id, t.ord.o_amount AS order_amt, 
U2.item_name AS itemName, U2.item_num AS " +
-        "itemNum FROM UNNEST(customer.orders) t(ord) , LATERAL" +
-      " (SELECT t1.ord.i_name AS item_name, t1.ord.i_number AS item_num FROM 
UNNEST(t.ord) AS t1(ord)) AS U2) AS U1";
-    runAndLog(Sql);
+    String sql = "EXPLAIN PLAN FOR SELECT customer.c_name, customer.c_address, 
U1.order_id, U1.order_amt," +
+            " U1.itemName, U1.itemNum" + " FROM 
cp.`lateraljoin/nested-customer.parquet` customer, LATERAL" +
+            " (SELECT t.ord.o_id AS order_id, t.ord.o_amount AS order_amt, 
U2.item_name AS itemName, U2.item_num AS " +
+            "itemNum FROM UNNEST(customer.orders) t(ord) , LATERAL" +
+            " (SELECT t1.ord.i_name AS item_name, t1.ord.i_number AS item_num 
FROM UNNEST(t.ord) AS t1(ord)) AS U2) AS U1";
+    runAndLog(sql);
+  }
+
+  @Test
+  public void testMultiUnnestAtSameLevelExec() throws Exception {
+    String sql = "SELECT customer.c_name, customer.c_address, U1.order_id, 
U1.order_amt," +
+      " U1.itemName, U1.itemNum FROM cp.`lateraljoin/nested-customer.parquet` 
customer, LATERAL" +
+      " (SELECT dt.order_id, dt.order_amt, U2.item_name AS itemName, 
U2.item_num AS itemNum from" +
+            "(select t.ord.items as items, t.ord.o_id AS order_id, 
t.ord.o_amount AS order_amt FROM UNNEST(customer.orders) t(ord)) dt , LATERAL" +
+      " (SELECT t1.items.i_name AS item_name, t1.items.i_number AS item_num 
FROM UNNEST(dt.items) AS t1(items)) AS U2) AS U1";
+    String baseline = "SELECT customer.c_name, customer.c_address, 
U1.order_id, U1.order_amount as order_amt, U2.item_name as itemName, 
U2.item_num as itemNum" +
+            " FROM cp.`lateraljoin/nested-customer.parquet` customer, LATERAL 
" +
+            "(SELECT t.ord.items as items, t.ord.o_id as order_id, 
t.ord.o_amount as order_amount from UNNEST(customer.orders) t(ord)) U1, 
LATERAL" +
+            "(SELECT t1.items.i_name as item_name, t1.items.i_number as 
item_num from UNNEST(U1.items) t1(items)) U2";
+    testBuilder()
+            .unOrdered()
+            .sqlQuery(sql)
+            .sqlBaselineQuery(baseline)
+            .go();
+  }
+
+  @Test
+  public void testMultiUnnestAtSameLevelExecExplicitResult() throws Exception {
+    String sql = "SELECT customer.c_name, customer.c_address, U1.order_id, 
U1.order_amt," +
+            " U1.itemName, U1.itemNum FROM 
cp.`lateraljoin/nested-customer.parquet` customer, LATERAL" +
+            " (SELECT dt.order_id, dt.order_amt, U2.item_name AS itemName, 
U2.item_num AS itemNum from" +
+            "(select t.ord.items as items, t.ord.o_id AS order_id, 
t.ord.o_amount AS order_amt FROM UNNEST(customer.orders) t(ord)) dt , LATERAL" +
+            " (SELECT t1.items.i_name AS item_name, t1.items.i_number AS 
item_num FROM UNNEST(dt.items) AS t1(items)) AS U2) AS U1 order by 1,2,3,4,5,6 
limit 1";
+    testBuilder()
+            .unOrdered()
+            .sqlQuery(sql)
+            .baselineColumns("c_name", "c_address", "order_id", "order_amt", 
"itemName", "itemNum")
+            .baselineValues("customer1","bay area, CA",1.0,4.5,"cheese",9.0)
+            .go();
   }
 
   @Test
@@ -265,9 +298,9 @@ public class TestE2EUnnestAndLateral extends ClusterTest {
 
   @Test
   public void testNestedUnnest() throws Exception {
-    String Sql = "select * from (select customer.orders as orders from 
cp.`lateraljoin/nested-customer.parquet` customer ) t1," +
+    String sql = "select * from (select customer.orders as orders from 
cp.`lateraljoin/nested-customer.parquet` customer ) t1," +
         " lateral ( select t.ord.items as items from unnest(t1.orders) t(ord) 
) t2, unnest(t2.items) t3(item) ";
-    runAndLog(Sql);
+    runAndLog(sql);
   }
 
   
/***********************************************************************************************
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestLateralPlans.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestLateralPlans.java
index 9cb5b6d..ef52f8e 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestLateralPlans.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/lateraljoin/TestLateralPlans.java
@@ -51,15 +51,15 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testLateralSql() throws Exception {
-    String Sql = "select t.c_name, t2.ord.o_shop as o_shop from 
cp.`lateraljoin/nested-customer.json` t," +
+    String sql = "select t.c_name, t2.ord.o_shop as o_shop from 
cp.`lateraljoin/nested-customer.json` t," +
         " unnest(t.orders) t2(ord) limit 1";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"},
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"},
       new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .baselineColumns("c_name", "o_shop")
         .baselineValues("customer1", "Meno Park 1st")
         .go();
@@ -70,10 +70,10 @@ public class TestLateralPlans extends BaseTestQuery {
     String explainSql = "explain plan without implementation for select 
t.c_name, t2.ord.o_shop as o_shop from cp.`lateraljoin/nested-customer.json` 
t," +
         " unnest(t.orders) t2(ord) limit 1";
 
-    String Sql = "select t.c_name, t2.ord.o_shop as o_shop from 
cp.`lateraljoin/nested-customer.json` t," +
+    String sql = "select t.c_name, t2.ord.o_shop as o_shop from 
cp.`lateraljoin/nested-customer.json` t," +
       " unnest(t.orders) t2(ord) limit 1";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"},
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"},
       new String[]{});
 
     test(explainSql);
@@ -82,18 +82,18 @@ public class TestLateralPlans extends BaseTestQuery {
   @Test
   public void testFilterPushCorrelate() throws Exception {
     test("alter session set `planner.slice_target`=1");
-    String query = "select t.c_name, t2.ord.o_shop as o_shop from 
cp.`lateraljoin/nested-customer.json` t,"
+    String sql = "select t.c_name, t2.ord.o_shop as o_shop from 
cp.`lateraljoin/nested-customer.json` t,"
         + " unnest(t.orders) t2(ord) where t.c_name='customer1' AND 
t2.ord.o_shop='Meno Park 1st' ";
 
-    PlanTestBase.testPlanMatchingPatterns(query, new 
String[]{"LateralJoin(.*[\n\r])+.*Filter(.*[\n\r])+.*Scan(.*[\n\r])+.*Filter"},
+    PlanTestBase.testPlanMatchingPatterns(sql, new 
String[]{"LateralJoin(.*[\n\r])+.*Filter(.*[\n\r])+.*Scan(.*[\n\r])+.*Filter"},
         new String[]{});
 
-    PlanTestBase.testPlanMatchingPatterns(query, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"},
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"},
       new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(query)
+        .sqlQuery(sql)
         .baselineColumns("c_name", "o_shop")
         .baselineValues("customer1", "Meno Park 1st")
         .go();
@@ -101,15 +101,15 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testLateralSqlPlainCol() throws Exception {
-    String Sql = "select t.c_name, t2.phone as c_phone from 
cp.`lateraljoin/nested-customer.json` t,"
+    String sql = "select t.c_name, t2.phone as c_phone from 
cp.`lateraljoin/nested-customer.json` t,"
         + " unnest(t.c_phone) t2(phone) limit 1";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`c_phone\\`\\]"},
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`c_phone\\`\\]"},
       new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .baselineColumns("c_name", "c_phone")
         .baselineValues("customer1", "6505200001")
         .go();
@@ -117,14 +117,14 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testLateralSqlStar() throws Exception {
-    String Sql = "select * from cp.`lateraljoin/nested-customer.json` t, 
unnest(t.orders) Orders(ord) limit 0";
+    String sql = "select * from cp.`lateraljoin/nested-customer.json` t, 
unnest(t.orders) Orders(ord) limit 0";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{},
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{},
       new String[]{"column excluded from output: =\\[\\`orders\\`\\]"});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .baselineColumns("c_name", "c_id", "c_phone", "orders", "c_address", 
"ord")
         .expectsEmptyResultSet()
         .go();
@@ -147,14 +147,14 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testLateralSqlStar3() throws Exception {
-    String Sql = "select Orders.*, c.* from 
cp.`lateraljoin/nested-customer.json` c, unnest(c.orders) Orders(ord) limit 0";
+    String sql = "select Orders.*, c.* from 
cp.`lateraljoin/nested-customer.json` c, unnest(c.orders) Orders(ord) limit 0";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{},
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{},
       new String[]{"column excluded from output: =\\[\\`orders\\`\\]"});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .baselineColumns("ord","c_name", "c_id", "c_phone", "orders", 
"c_address")
         .expectsEmptyResultSet()
         .go();
@@ -162,13 +162,13 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testLateralSqlStar4() throws Exception {
-    String Sql = "select Orders.* from cp.`lateraljoin/nested-customer.json` 
c, unnest(c.orders) Orders(ord) limit 0";
+    String sql = "select Orders.* from cp.`lateraljoin/nested-customer.json` 
c, unnest(c.orders) Orders(ord) limit 0";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{});
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .baselineColumns("ord")
         .expectsEmptyResultSet()
         .go();
@@ -176,17 +176,17 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testLateralSqlWithAS() throws Exception {
-    String Sql = "select t.c_name, t2.orders from 
cp.`lateraljoin/nested-customer.parquet` t,"
+    String sql = "select t.c_name, t2.orders from 
cp.`lateraljoin/nested-customer.parquet` t,"
         + " unnest(t.orders) as t2(orders)";
     String baselineQuery = "select t.c_name, t2.orders from 
cp.`lateraljoin/nested-customer.parquet` t inner join" +
         " (select c_name, flatten(orders) from cp" +
         ".`lateraljoin/nested-customer.parquet` ) as t2(name, orders) on 
t.c_name = t2.name";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{});
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .sqlBaselineQuery(baselineQuery)
         .go();
 
@@ -194,25 +194,25 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testMultiUnnestLateralAtSameLevel() throws Exception {
-    String Sql = "select t.c_name, t2.orders, t3.orders from 
cp.`lateraljoin/nested-customer.parquet` t," +
+    String sql = "select t.c_name, t2.orders, t3.orders from 
cp.`lateraljoin/nested-customer.parquet` t," +
         " LATERAL ( select t2.orders from unnest(t.orders) as t2(orders)) as 
t2, LATERAL " +
         "(select t3.orders from unnest(t.orders) as t3(orders)) as t3";
     String baselineQuery = "select t.c_name, t2.orders, t3.orders from 
cp.`lateraljoin/nested-customer.parquet` t inner join" +
         " (select c_name, flatten(orders) from 
cp.`lateraljoin/nested-customer.parquet` ) as t2 (name, orders) on t.c_name = 
t2.name " +
         " inner join (select c_name, flatten(orders) from 
cp.`lateraljoin/nested-customer.parquet` ) as t3(name, orders) on t.c_name = 
t3.name";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{});
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .sqlBaselineQuery(baselineQuery)
         .go();
   }
 
   @Test
   public void testSubQuerySql() throws Exception {
-    String Sql = "select t.c_name, d1.items as items0 , t3.items as items1 
from cp.`lateraljoin/nested-customer.parquet` t," +
+    String sql = "select t.c_name, d1.items as items0 , t3.items as items1 
from cp.`lateraljoin/nested-customer.parquet` t," +
         " lateral (select t2.ord.items as items from unnest(t.orders) t2(ord)) 
d1," +
         " unnest(d1.items) t3(items)";
 
@@ -220,18 +220,18 @@ public class TestLateralPlans extends BaseTestQuery {
         " inner join (select c_name, f, flatten(t1.f.items) from (select 
c_name, flatten(orders) as f from cp.`lateraljoin/nested-customer.parquet`) as 
t1 ) " +
         "t3(name, orders, items) on t.c_name = t3.name ";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{"column excluded from output: 
=\\[\\`items\\`\\]"});
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{"column excluded from output: 
=\\[\\`items\\`\\]"});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .sqlBaselineQuery(baselineQuery)
         .go();
   }
 
   @Test
   public void testUnnestWithFilter() throws Exception {
-    String Sql = "select t.c_name, d1.items as items0, t3.items as items1 from 
cp.`lateraljoin/nested-customer.parquet` t," +
+    String sql = "select t.c_name, d1.items as items0, t3.items as items1 from 
cp.`lateraljoin/nested-customer.parquet` t," +
         " lateral (select t2.ord.items as items from unnest(t.orders) t2(ord)) 
d1," +
         " unnest(d1.items) t3(items) where t.c_id > 1";
 
@@ -239,18 +239,18 @@ public class TestLateralPlans extends BaseTestQuery {
         " inner join (select c_name, f, flatten(t1.f.items) from (select 
c_name, flatten(orders) as f from cp.`lateraljoin/nested-customer.parquet`) as 
t1 ) " +
         "t3(name, orders, items) on t.c_name = t3.name where t.c_id > 1";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{"column excluded from output: 
=\\[\\`items\\`\\]"});
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]"}, new String[]{"column excluded from output: 
=\\[\\`items\\`\\]"});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .sqlBaselineQuery(baselineQuery)
         .go();
   }
 
   @Test
   public void testUnnestWithAggInSubquery() throws Exception {
-    String Sql = "select t.c_name, sum(t4.items) from 
cp.`lateraljoin/nested-customer.parquet` t," +
+    String sql = "select t.c_name, sum(t4.items) from 
cp.`lateraljoin/nested-customer.parquet` t," +
         " lateral (select t2.ord.items as items from unnest(t.orders) t2(ord)) 
d1," +
         " lateral (select sum(t3.items.i_number) from unnest(d1.items) 
t3(items)) t4(items) where t.c_id > 1 group by t.c_name";
 
@@ -267,14 +267,14 @@ public class TestLateralPlans extends BaseTestQuery {
           .testBuilder()
           .ordered()
           .sqlBaselineQuery(baselineQuery)
-          .sqlQuery(Sql)
+          .sqlQuery(sql)
           .go();
     }
   }
 
   @Test
   public void testUnnestWithAggOnOuterTable() throws Exception {
-    String Sql = "select avg(d2.inum) from 
cp.`lateraljoin/nested-customer.parquet` t," +
+    String sql = "select avg(d2.inum) from 
cp.`lateraljoin/nested-customer.parquet` t," +
         " lateral (select t2.ord.items as items from unnest(t.orders) t2(ord)) 
d1," +
         " lateral (select t3.items.i_number as inum from unnest(d1.items) 
t3(items)) d2 where t.c_id > 1 group by t.c_id";
 
@@ -282,11 +282,11 @@ public class TestLateralPlans extends BaseTestQuery {
         " inner join (select c_name, f, flatten(t1.f.items) from (select 
c_name, flatten(orders) as f from cp.`lateraljoin/nested-customer.parquet`) as 
t1 ) " +
         "t3(name, orders, items) on t.c_name = t3.name where t.c_id > 1 group 
by t.c_id";
 
-    PlanTestBase.testPlanMatchingPatterns(Sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]", "column excluded from output: 
=\\[\\`items\\`\\]"}, new String[]{});
+    PlanTestBase.testPlanMatchingPatterns(sql, new String[]{"column excluded 
from output: =\\[\\`orders\\`\\]", "column excluded from output: 
=\\[\\`items\\`\\]"}, new String[]{});
 
     testBuilder()
         .unOrdered()
-        .sqlQuery(Sql)
+        .sqlQuery(sql)
         .sqlBaselineQuery(baselineQuery)
         .go();
 
@@ -294,7 +294,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testUnnestTableAndColumnAlias() throws Exception {
-    String Sql = "select t.c_name from cp.`lateraljoin/nested-customer.json` 
t, unnest(t.orders) ";
+    String sql = "select t.c_name from cp.`lateraljoin/nested-customer.json` 
t, unnest(t.orders) ";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
         .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true);
 
@@ -302,7 +302,7 @@ public class TestLateralPlans extends BaseTestQuery {
          ClientFixture client = cluster.clientFixture()) {
       client
           .queryBuilder()
-          .sql(Sql)
+          .sql(sql)
           .run();
     } catch (UserRemoteException ex) {
       assertTrue(ex.getMessage().contains("Alias table and column name are 
required for UNNEST"));
@@ -311,7 +311,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testUnnestColumnAlias() throws Exception {
-    String Sql = "select t.c_name, t2.orders from 
cp.`lateraljoin/nested-customer.json` t, unnest(t.orders) t2";
+    String sql = "select t.c_name, t2.orders from 
cp.`lateraljoin/nested-customer.json` t, unnest(t.orders) t2";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
         .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true);
 
@@ -319,7 +319,7 @@ public class TestLateralPlans extends BaseTestQuery {
          ClientFixture client = cluster.clientFixture()) {
       client
           .queryBuilder()
-          .sql(Sql)
+          .sql(sql)
           .run();
     } catch (UserRemoteException ex) {
       assertTrue(ex.getMessage().contains("Alias table and column name are 
required for UNNEST"));
@@ -333,7 +333,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithAggWithoutGrpBy() throws Exception {
-    String Sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
+    String sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
             " lateral ( select sum(t2.ord.o_totalprice) as totalprice from 
unnest(t.c_orders) t2(ord)) d1";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
             .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true)
@@ -341,7 +341,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -349,7 +349,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithStreamAggWithGrpBy() throws Exception {
-    String Sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
+    String sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
             " lateral ( select sum(t2.ord.o_totalprice) as totalprice from 
unnest(t.c_orders) t2(ord) group by t2.ord.o_orderkey) d1";
 
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
@@ -360,7 +360,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -368,7 +368,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithHashAggWithGrpBy() throws Exception {
-    String Sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
+    String sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
             " lateral ( select sum(t2.ord.o_totalprice) as totalprice from 
unnest(t.c_orders) t2(ord) group by t2.ord.o_orderkey) d1";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
             .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true)
@@ -378,7 +378,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -402,7 +402,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithOrderByLimit() throws Exception {
-    String Sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
+    String sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` 
t," +
             " lateral ( select t2.ord.o_totalprice as totalprice from 
unnest(t.c_orders) t2(ord) order by t2.ord.o_orderkey limit 10) d1";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
             .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true)
@@ -410,7 +410,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -419,7 +419,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithLateralsDownStreamJoin() throws Exception {
-    String Sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` t, 
dfs.`lateraljoin/multipleFiles` t2, " +
+    String sql = "select d1.totalprice from dfs.`lateraljoin/multipleFiles` t, 
dfs.`lateraljoin/multipleFiles` t2, " +
             " lateral ( select t2.ord.o_totalprice as totalprice from 
unnest(t.c_orders) t2(ord) order by t2.ord.o_orderkey limit 10) d1" +
             " where t.c_name = t2.c_name";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
@@ -428,7 +428,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -436,7 +436,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithLateralsDownStreamUnion() throws Exception {
-    String Sql = "select t.c_name from dfs.`lateraljoin/multipleFiles` t union 
all " +
+    String sql = "select t.c_name from dfs.`lateraljoin/multipleFiles` t union 
all " +
             " select t.c_name from dfs.`lateraljoin/multipleFiles` t, " +
                     " lateral ( select t2.ord.o_totalprice as totalprice from 
unnest(t.c_orders) t2(ord) order by t2.ord.o_orderkey limit 10) d1";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
@@ -445,7 +445,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -453,7 +453,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testNoExchangeWithLateralsDownStreamAgg() throws Exception {
-    String Sql = "select sum(d1.totalprice) from 
dfs.`lateraljoin/multipleFiles` t, " +
+    String sql = "select sum(d1.totalprice) from 
dfs.`lateraljoin/multipleFiles` t, " +
             " lateral ( select t2.ord.o_totalprice as totalprice from 
unnest(t.c_orders) t2(ord) order by t2.ord.o_orderkey limit 10) d1 group by 
t.c_custkey";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
             .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true)
@@ -463,7 +463,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String rightChild = getRightChildOfLateral(explain);
       assertFalse(rightChild.contains("Exchange"));
     }
@@ -480,14 +480,14 @@ public class TestLateralPlans extends BaseTestQuery {
   //The following test is for testing the explain plan contains relation 
between lateral and corresponding unnest.
   @Test
   public void testLateralAndUnnestExplainPlan() throws Exception {
-    String Sql = "select c.* from cp.`lateraljoin/nested-customer.json` c, 
unnest(c.orders) Orders(ord)";
+    String sql = "select c.* from cp.`lateraljoin/nested-customer.json` c, 
unnest(c.orders) Orders(ord)";
     ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher)
             .setOptionDefault(ExecConstants.ENABLE_UNNEST_LATERAL_KEY, true)
             .setOptionDefault(ExecConstants.SLICE_TARGET, 1);
 
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
-      String explain = client.queryBuilder().sql(Sql).explainText();
+      String explain = client.queryBuilder().sql(sql).explainText();
       String srcOp = explain.substring(explain.indexOf("srcOp"));
       assertTrue(srcOp != null && srcOp.length() > 0);
       String correlateFragmentPattern = srcOp.substring(srcOp.indexOf("=")+1, 
srcOp.indexOf("]"));
@@ -499,7 +499,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testUnnestTopN() throws Exception {
-    String query =
+    String sql =
         "select customer.c_custkey," +
                 "customer.c_name," +
                 "t.o.o_orderkey," +
@@ -517,7 +517,7 @@ public class TestLateralPlans extends BaseTestQuery {
     try (ClusterFixture cluster = builder.build();
          ClientFixture client = cluster.clientFixture()) {
       String plan = client.queryBuilder()
-          .sql(query)
+          .sql(sql)
           .explainText();
 
       assertThat("Query plan doesn't contain TopN operator",
@@ -529,7 +529,7 @@ public class TestLateralPlans extends BaseTestQuery {
 
   @Test
   public void testMultiUnnestQuery() throws Exception {
-    String Sql = "SELECT t5.l_quantity FROM dfs.`lateraljoin/multipleFiles` t, 
" +
+    String sql = "SELECT t5.l_quantity FROM dfs.`lateraljoin/multipleFiles` t, 
" +
             "LATERAL (SELECT t2.ordrs.o_lineitems FROM UNNEST(t.c_orders) 
t2(ordrs)) t3(lineitems), " +
             "LATERAL (SELECT t4.lineitems.l_quantity FROM UNNEST(t3.lineitems) 
t4(lineitems)) t5(l_quantity) order by 1";
 
@@ -545,7 +545,7 @@ public class TestLateralPlans extends BaseTestQuery {
       client.testBuilder()
               .ordered()
               .sqlBaselineQuery(baselineQuery)
-              .sqlQuery(Sql)
+              .sqlQuery(sql)
               .go();
     }
   }

Reply via email to