You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2020/08/27 00:12:25 UTC

[impala] branch master updated: IMPALA-10095: Include query plan tests for all of TPC-DS

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0fcf846  IMPALA-10095: Include query plan tests for all of TPC-DS
0fcf846 is described below

commit 0fcf846592072e35a1d693ee432b8a0216e229ee
Author: Shant Hovsepian <sh...@cloudera.com>
AuthorDate: Wed Aug 19 09:29:01 2020 -0400

    IMPALA-10095: Include query plan tests for all of TPC-DS
    
    Added TpcdsPlannerTest to include each TPC-DS query as a separate plan
    test file. Removed the previous tpcds-all test file.
    
    This means when running only PlannerTest no TPC-DS plans are checked,
    however as part of a full frontend test run the TpcdsPlannerTest will be
    included.
    
    Runs with cardinality and resource checks, as well as using parquet
    tables to include predicate pushdowns.
    
    Change-Id: Ibaf40d8b783be1dc7b62ba3269feb034cb8047da
    Reviewed-on: http://gerrit.cloudera.org:8080/16345
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
    Reviewed-by: Tim Armstrong <ta...@cloudera.com>
---
 .../org/apache/impala/planner/PlannerTest.java     |    10 -
 .../org/apache/impala/planner/PlannerTestBase.java |     2 +-
 .../apache/impala/planner/TpcdsPlannerTest.java    |   572 +
 .../queries/PlannerTest/tpcds-all.test             | 16020 -------------------
 .../queries/PlannerTest/tpcds/tpcds-q01.test       |   685 +
 .../queries/PlannerTest/tpcds/tpcds-q02.test       |   787 +
 .../queries/PlannerTest/tpcds/tpcds-q03.test       |   355 +
 .../queries/PlannerTest/tpcds/tpcds-q04.test       |  2051 +++
 .../queries/PlannerTest/tpcds/tpcds-q05.test       |   813 +
 .../queries/PlannerTest/tpcds/tpcds-q06.test       |   762 +
 .../queries/PlannerTest/tpcds/tpcds-q07.test       |   501 +
 .../queries/PlannerTest/tpcds/tpcds-q08.test       |   735 +
 .../queries/PlannerTest/tpcds/tpcds-q09.test       |  1942 +++
 .../queries/PlannerTest/tpcds/tpcds-q10a.test      |   843 +
 .../queries/PlannerTest/tpcds/tpcds-q11.test       |  1399 ++
 .../queries/PlannerTest/tpcds/tpcds-q12.test       |   381 +
 .../queries/PlannerTest/tpcds/tpcds-q13.test       |   182 +
 .../queries/PlannerTest/tpcds/tpcds-q14a.test      |  5151 ++++++
 .../queries/PlannerTest/tpcds/tpcds-q14b.test      |  3677 +++++
 .../queries/PlannerTest/tpcds/tpcds-q15.test       |   444 +
 .../queries/PlannerTest/tpcds/tpcds-q16.test       |   587 +
 .../queries/PlannerTest/tpcds/tpcds-q17.test       |   792 +
 .../queries/PlannerTest/tpcds/tpcds-q18.test       |   473 +
 .../queries/PlannerTest/tpcds/tpcds-q19.test       |   617 +
 .../queries/PlannerTest/tpcds/tpcds-q20.test       |   383 +
 .../queries/PlannerTest/tpcds/tpcds-q21.test       |   425 +
 .../queries/PlannerTest/tpcds/tpcds-q22.test       |   296 +
 .../queries/PlannerTest/tpcds/tpcds-q23a.test      |  1230 ++
 .../queries/PlannerTest/tpcds/tpcds-q23b.test      |  2325 +++
 .../queries/PlannerTest/tpcds/tpcds-q24a.test      |  1254 ++
 .../queries/PlannerTest/tpcds/tpcds-q24b.test      |  1254 ++
 .../queries/PlannerTest/tpcds/tpcds-q25.test       |   786 +
 .../queries/PlannerTest/tpcds/tpcds-q26.test       |   508 +
 .../queries/PlannerTest/tpcds/tpcds-q27.test       |   336 +
 .../queries/PlannerTest/tpcds/tpcds-q28.test       |  1071 ++
 .../queries/PlannerTest/tpcds/tpcds-q29.test       |   786 +
 .../queries/PlannerTest/tpcds/tpcds-q30.test       |   868 +
 .../queries/PlannerTest/tpcds/tpcds-q31.test       |  1875 +++
 .../queries/PlannerTest/tpcds/tpcds-q32.test       |   523 +
 .../queries/PlannerTest/tpcds/tpcds-q33.test       |   879 +
 .../queries/PlannerTest/tpcds/tpcds-q34.test       |   540 +
 .../queries/PlannerTest/tpcds/tpcds-q35a.test      |   833 +
 .../queries/PlannerTest/tpcds/tpcds-q36.test       |   332 +
 .../queries/PlannerTest/tpcds/tpcds-q37.test       |   436 +
 .../queries/PlannerTest/tpcds/tpcds-q38.test       |   536 +
 .../queries/PlannerTest/tpcds/tpcds-q39a.test      |   832 +
 .../queries/PlannerTest/tpcds/tpcds-q39b.test      |   834 +
 .../queries/PlannerTest/tpcds/tpcds-q40.test       |   494 +
 .../queries/PlannerTest/tpcds/tpcds-q41.test       |   343 +
 .../queries/PlannerTest/tpcds/tpcds-q42.test       |   343 +
 .../queries/PlannerTest/tpcds/tpcds-q43.test       |   351 +
 .../queries/PlannerTest/tpcds/tpcds-q44.test       |   975 ++
 .../queries/PlannerTest/tpcds/tpcds-q45.test       |   391 +
 .../queries/PlannerTest/tpcds/tpcds-q46.test       |   696 +
 .../queries/PlannerTest/tpcds/tpcds-q47.test       |  1354 ++
 .../queries/PlannerTest/tpcds/tpcds-q48.test       |   499 +
 .../queries/PlannerTest/tpcds/tpcds-q49.test       |  1341 ++
 .../queries/PlannerTest/tpcds/tpcds-q50.test       |   533 +
 .../queries/PlannerTest/tpcds/tpcds-q51.test       |   690 +
 .../queries/PlannerTest/tpcds/tpcds-q52.test       |   342 +
 .../queries/PlannerTest/tpcds/tpcds-q53.test       |   418 +
 .../queries/PlannerTest/tpcds/tpcds-q54.test       |  1257 ++
 .../queries/PlannerTest/tpcds/tpcds-q55.test       |   339 +
 .../queries/PlannerTest/tpcds/tpcds-q56.test       |  1484 ++
 .../queries/PlannerTest/tpcds/tpcds-q57.test       |  1361 ++
 .../queries/PlannerTest/tpcds/tpcds-q58.test       |  1498 ++
 .../queries/PlannerTest/tpcds/tpcds-q59.test       |   865 +
 .../queries/PlannerTest/tpcds/tpcds-q60.test       |   891 ++
 .../queries/PlannerTest/tpcds/tpcds-q61.test       |  1233 ++
 .../queries/PlannerTest/tpcds/tpcds-q62.test       |   504 +
 .../queries/PlannerTest/tpcds/tpcds-q63.test       |   479 +
 .../queries/PlannerTest/tpcds/tpcds-q64.test       |  3452 ++++
 .../queries/PlannerTest/tpcds/tpcds-q65.test       |   726 +
 .../queries/PlannerTest/tpcds/tpcds-q66.test       |  1226 ++
 .../queries/PlannerTest/tpcds/tpcds-q67.test       |   411 +
 .../queries/PlannerTest/tpcds/tpcds-q68.test       |   680 +
 .../queries/PlannerTest/tpcds/tpcds-q69.test       |   859 +
 .../queries/PlannerTest/tpcds/tpcds-q70.test       |   501 +
 .../queries/PlannerTest/tpcds/tpcds-q71.test       |   698 +
 .../queries/PlannerTest/tpcds/tpcds-q72.test       |   994 ++
 .../queries/PlannerTest/tpcds/tpcds-q73.test       |   525 +
 .../queries/PlannerTest/tpcds/tpcds-q74.test       |  1381 ++
 .../queries/PlannerTest/tpcds/tpcds-q75.test       |  2166 +++
 .../queries/PlannerTest/tpcds/tpcds-q76.test       |   772 +
 .../queries/PlannerTest/tpcds/tpcds-q77.test       |  1027 ++
 .../queries/PlannerTest/tpcds/tpcds-q78.test       |   991 ++
 .../queries/PlannerTest/tpcds/tpcds-q79.test       |   533 +
 .../queries/PlannerTest/tpcds/tpcds-q80.test       |  1052 ++
 .../queries/PlannerTest/tpcds/tpcds-q81.test       |   874 +
 .../queries/PlannerTest/tpcds/tpcds-q82.test       |   426 +
 .../queries/PlannerTest/tpcds/tpcds-q83.test       |  1375 ++
 .../queries/PlannerTest/tpcds/tpcds-q84.test       |   442 +
 .../queries/PlannerTest/tpcds/tpcds-q85.test       |   804 +
 .../queries/PlannerTest/tpcds/tpcds-q86.test       |   278 +
 .../queries/PlannerTest/tpcds/tpcds-q87.test       |   530 +
 .../queries/PlannerTest/tpcds/tpcds-q88.test       |  2966 ++++
 .../queries/PlannerTest/tpcds/tpcds-q89.test       |   470 +
 .../queries/PlannerTest/tpcds/tpcds-q90.test       |   776 +
 .../queries/PlannerTest/tpcds/tpcds-q91.test       |   665 +
 .../queries/PlannerTest/tpcds/tpcds-q92.test       |   539 +
 .../queries/PlannerTest/tpcds/tpcds-q93.test       |   326 +
 .../queries/PlannerTest/tpcds/tpcds-q94.test       |   602 +
 .../queries/PlannerTest/tpcds/tpcds-q95.test       |   528 +
 .../queries/PlannerTest/tpcds/tpcds-q96.test       |   376 +
 .../queries/PlannerTest/tpcds/tpcds-q97.test       |   466 +
 .../queries/PlannerTest/tpcds/tpcds-q98.test       |   384 +
 .../queries/PlannerTest/tpcds/tpcds-q99.test       |   506 +
 107 files changed, 92900 insertions(+), 16031 deletions(-)

diff --git a/fe/src/test/java/org/apache/impala/planner/PlannerTest.java b/fe/src/test/java/org/apache/impala/planner/PlannerTest.java
index 1d03e98..f30a49f 100644
--- a/fe/src/test/java/org/apache/impala/planner/PlannerTest.java
+++ b/fe/src/test/java/org/apache/impala/planner/PlannerTest.java
@@ -550,16 +550,6 @@ public class PlannerTest extends PlannerTestBase {
   }
 
   @Test
-  public void testTpcds() {
-    // Uses ss_sold_date_sk as the partition key of store_sales to allow static partition
-    // pruning. The original predicates were rephrased in terms of the ss_sold_date_sk
-    // partition key, with the query semantics identical to the original queries.
-    runPlannerTestFile("tpcds-all", "tpcds",
-        ImmutableSet.of(PlannerTestOption.INCLUDE_RESOURCE_HEADER,
-            PlannerTestOption.VALIDATE_RESOURCES));
-  }
-
-  @Test
   public void testSmallQueryOptimization() {
     TQueryOptions options = new TQueryOptions();
     options.setExec_single_node_rows_threshold(8);
diff --git a/fe/src/test/java/org/apache/impala/planner/PlannerTestBase.java b/fe/src/test/java/org/apache/impala/planner/PlannerTestBase.java
index afcfa11..bb53d06 100644
--- a/fe/src/test/java/org/apache/impala/planner/PlannerTestBase.java
+++ b/fe/src/test/java/org/apache/impala/planner/PlannerTestBase.java
@@ -89,7 +89,7 @@ public class PlannerTestBase extends FrontendTestBase {
   private final static boolean GENERATE_OUTPUT_FILE = true;
   private final java.nio.file.Path testDir_ = Paths.get("functional-planner", "queries",
       "PlannerTest");
-  private static java.nio.file.Path outDir_;
+  protected static java.nio.file.Path outDir_;
   private static KuduClient kuduClient_;
 
   // Map from plan ID (TPlanNodeId) to the plan node with that ID.
diff --git a/fe/src/test/java/org/apache/impala/planner/TpcdsPlannerTest.java b/fe/src/test/java/org/apache/impala/planner/TpcdsPlannerTest.java
new file mode 100644
index 0000000..4c94941
--- /dev/null
+++ b/fe/src/test/java/org/apache/impala/planner/TpcdsPlannerTest.java
@@ -0,0 +1,572 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.impala.planner;
+
+import java.nio.file.Paths;
+import java.util.Set;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * Plans from the TPC-DS qualification queries at scale factor 1. Single node,
+ * Distributed and Parallel plans are all included. Cardinality and resource checks are
+ * also preformed.
+ */
+public class TpcdsPlannerTest extends PlannerTestBase {
+
+  private static Set<PlannerTestOption> testOptions =
+      ImmutableSet.of(PlannerTestOption.EXTENDED_EXPLAIN,
+          PlannerTestOption.INCLUDE_RESOURCE_HEADER, PlannerTestOption.VALIDATE_RESOURCES,
+          PlannerTestOption.VALIDATE_CARDINALITY);
+
+  @BeforeClass
+  public static void setUp() throws Exception {
+    PlannerTestBase.setUp();
+    Paths.get(outDir_.toString(), "tpcds").toFile().mkdirs();
+  }
+
+  @Test
+  public void testQ1() {
+    runPlannerTestFile("tpcds/tpcds-q01", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ2() {
+    runPlannerTestFile("tpcds/tpcds-q02", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ3() {
+    runPlannerTestFile("tpcds/tpcds-q03", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ4() {
+    runPlannerTestFile("tpcds/tpcds-q04", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ5() {
+    runPlannerTestFile("tpcds/tpcds-q05", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ6() {
+    runPlannerTestFile("tpcds/tpcds-q06", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ7() {
+    runPlannerTestFile("tpcds/tpcds-q07", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ8() {
+    runPlannerTestFile("tpcds/tpcds-q08", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ9() {
+    runPlannerTestFile("tpcds/tpcds-q09", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ10() {
+    // This is an official variant of q10 that uses a rewrite for lack of support for
+    // multiple subqueries in disjunctive predicates.
+    runPlannerTestFile("tpcds/tpcds-q10a", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ11() {
+    runPlannerTestFile("tpcds/tpcds-q11", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ12() {
+    runPlannerTestFile("tpcds/tpcds-q12", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ13() {
+    runPlannerTestFile("tpcds/tpcds-q13", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ14a() {
+    // First of the two query statements from the official q14.
+    runPlannerTestFile("tpcds/tpcds-q14a", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ14b() {
+    // Second of the two query statements from the official q14.
+    runPlannerTestFile("tpcds/tpcds-q14b", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ15() {
+    runPlannerTestFile("tpcds/tpcds-q15", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ16() {
+    runPlannerTestFile("tpcds/tpcds-q16", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ17() {
+    runPlannerTestFile("tpcds/tpcds-q17", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ18() {
+    runPlannerTestFile("tpcds/tpcds-q18", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ19() {
+    runPlannerTestFile("tpcds/tpcds-q19", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ20() {
+    runPlannerTestFile("tpcds/tpcds-q20", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ21() {
+    runPlannerTestFile("tpcds/tpcds-q21", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ22() {
+    runPlannerTestFile("tpcds/tpcds-q22", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ23a() {
+    // First of the two query statements from the official q23.
+    runPlannerTestFile("tpcds/tpcds-q23a", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ23b() {
+    // Second of the two query statements from the official q23.
+    runPlannerTestFile("tpcds/tpcds-q23b", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ24a() {
+    // First of the two query statements from the official q24.
+    runPlannerTestFile("tpcds/tpcds-q24a", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ24b() {
+    // Second of the two query statements from the official q24.
+    runPlannerTestFile("tpcds/tpcds-q24b", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ25() {
+    runPlannerTestFile("tpcds/tpcds-q25", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ26() {
+    runPlannerTestFile("tpcds/tpcds-q26", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ27() {
+    runPlannerTestFile("tpcds/tpcds-q27", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ28() {
+    runPlannerTestFile("tpcds/tpcds-q28", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ29() {
+    runPlannerTestFile("tpcds/tpcds-q29", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ30() {
+    runPlannerTestFile("tpcds/tpcds-q30", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ31() {
+    runPlannerTestFile("tpcds/tpcds-q31", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ32() {
+    runPlannerTestFile("tpcds/tpcds-q32", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ33() {
+    runPlannerTestFile("tpcds/tpcds-q33", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ34() {
+    runPlannerTestFile("tpcds/tpcds-q34", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ35() {
+    // This is an official variant of q35 that uses a rewrite for lack of support for
+    // multiple subqueries in disjunctive predicates.
+    runPlannerTestFile("tpcds/tpcds-q35a", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ36() {
+    runPlannerTestFile("tpcds/tpcds-q36", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ37() {
+    runPlannerTestFile("tpcds/tpcds-q37", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ38() {
+    runPlannerTestFile("tpcds/tpcds-q38", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ39a() {
+    // First of the two query statements from the official q39.
+    runPlannerTestFile("tpcds/tpcds-q39a", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ39b() {
+    // Second of the two query statements from the official q39.
+    runPlannerTestFile("tpcds/tpcds-q39b", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ40() {
+    runPlannerTestFile("tpcds/tpcds-q40", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ41() {
+    runPlannerTestFile("tpcds/tpcds-q41", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ42() {
+    runPlannerTestFile("tpcds/tpcds-q42", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ43() {
+    runPlannerTestFile("tpcds/tpcds-q43", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ44() {
+    runPlannerTestFile("tpcds/tpcds-q44", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ45() {
+    runPlannerTestFile("tpcds/tpcds-q45", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ46() {
+    runPlannerTestFile("tpcds/tpcds-q46", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ47() {
+    runPlannerTestFile("tpcds/tpcds-q47", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ48() {
+    runPlannerTestFile("tpcds/tpcds-q48", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ49() {
+    runPlannerTestFile("tpcds/tpcds-q49", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ50() {
+    runPlannerTestFile("tpcds/tpcds-q50", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ51() {
+    runPlannerTestFile("tpcds/tpcds-q51", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ52() {
+    runPlannerTestFile("tpcds/tpcds-q52", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ53() {
+    runPlannerTestFile("tpcds/tpcds-q53", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ54() {
+    runPlannerTestFile("tpcds/tpcds-q54", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ55() {
+    runPlannerTestFile("tpcds/tpcds-q55", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ56() {
+    runPlannerTestFile("tpcds/tpcds-q56", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ57() {
+    runPlannerTestFile("tpcds/tpcds-q57", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ58() {
+    runPlannerTestFile("tpcds/tpcds-q58", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ59() {
+    runPlannerTestFile("tpcds/tpcds-q59", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ60() {
+    runPlannerTestFile("tpcds/tpcds-q60", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ61() {
+    runPlannerTestFile("tpcds/tpcds-q61", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ62() {
+    runPlannerTestFile("tpcds/tpcds-q62", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ63() {
+    runPlannerTestFile("tpcds/tpcds-q63", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ64() {
+    runPlannerTestFile("tpcds/tpcds-q64", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ65() {
+    runPlannerTestFile("tpcds/tpcds-q65", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ66() {
+    runPlannerTestFile("tpcds/tpcds-q66", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ67() {
+    runPlannerTestFile("tpcds/tpcds-q67", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ68() {
+    runPlannerTestFile("tpcds/tpcds-q68", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ69() {
+    runPlannerTestFile("tpcds/tpcds-q69", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ70() {
+    runPlannerTestFile("tpcds/tpcds-q70", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ71() {
+    runPlannerTestFile("tpcds/tpcds-q71", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ72() {
+    runPlannerTestFile("tpcds/tpcds-q72", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ73() {
+    runPlannerTestFile("tpcds/tpcds-q73", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ74() {
+    runPlannerTestFile("tpcds/tpcds-q74", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ75() {
+    runPlannerTestFile("tpcds/tpcds-q75", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ76() {
+    runPlannerTestFile("tpcds/tpcds-q76", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ77() {
+    runPlannerTestFile("tpcds/tpcds-q77", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ78() {
+    runPlannerTestFile("tpcds/tpcds-q78", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ79() {
+    runPlannerTestFile("tpcds/tpcds-q79", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ80() {
+    runPlannerTestFile("tpcds/tpcds-q80", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ81() {
+    runPlannerTestFile("tpcds/tpcds-q81", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ82() {
+    runPlannerTestFile("tpcds/tpcds-q82", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ83() {
+    runPlannerTestFile("tpcds/tpcds-q83", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ84() {
+    runPlannerTestFile("tpcds/tpcds-q84", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ85() {
+    runPlannerTestFile("tpcds/tpcds-q85", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ86() {
+    runPlannerTestFile("tpcds/tpcds-q86", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ87() {
+    runPlannerTestFile("tpcds/tpcds-q87", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ88() {
+    runPlannerTestFile("tpcds/tpcds-q88", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ89() {
+    runPlannerTestFile("tpcds/tpcds-q89", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ90() {
+    runPlannerTestFile("tpcds/tpcds-q90", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ91() {
+    runPlannerTestFile("tpcds/tpcds-q91", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ92() {
+    runPlannerTestFile("tpcds/tpcds-q92", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ93() {
+    runPlannerTestFile("tpcds/tpcds-q93", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ94() {
+    runPlannerTestFile("tpcds/tpcds-q94", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ95() {
+    runPlannerTestFile("tpcds/tpcds-q95", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ96() {
+    runPlannerTestFile("tpcds/tpcds-q96", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ97() {
+    runPlannerTestFile("tpcds/tpcds-q97", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ98() {
+    runPlannerTestFile("tpcds/tpcds-q98", "tpcds_parquet", testOptions);
+  }
+
+  @Test
+  public void testQ99() {
+    runPlannerTestFile("tpcds/tpcds-q99", "tpcds_parquet", testOptions);
+  }
+}
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-all.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-all.test
deleted file mode 100644
index b5d9a20..0000000
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-all.test
+++ /dev/null
@@ -1,16020 +0,0 @@
-# TPCDS-Q3
-select
-  dt.d_year,
-  item.i_brand_id brand_id,
-  item.i_brand brand,
-  sum(ss_ext_sales_price) sum_agg
-from
-  date_dim dt,
-  store_sales,
-  item
-where
-  dt.d_date_sk = store_sales.ss_sold_date_sk
-  and store_sales.ss_item_sk = item.i_item_sk
-  and item.i_manufact_id = 436
-  and dt.d_moy = 12
-group by
-  dt.d_year,
-  item.i_brand,
-  item.i_brand_id
-order by
-  dt.d_year,
-  sum_agg desc,
-  brand_id
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
-Per-Host Resource Estimates: Memory=214MB
-PLAN-ROOT SINK
-|
-06:TOP-N [LIMIT=100]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  row-size=52B cardinality=100
-|
-05:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=3.04K
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  runtime filters: RF000 <- dt.d_date_sk
-|  row-size=72B cardinality=3.04K
-|
-|--00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_moy = 12
-|     row-size=12B cardinality=6.09K
-|
-03:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  runtime filters: RF002 <- item.i_item_sk
-|  row-size=60B cardinality=3.04K
-|
-|--02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manufact_id = 436
-|     row-size=44B cardinality=19
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=34.81MB Threads=9
-Per-Host Resource Estimates: Memory=235MB
-PLAN-ROOT SINK
-|
-12:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  row-size=52B cardinality=100
-|
-11:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=3.04K
-|
-10:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=3.04K
-|
-04:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  runtime filters: RF000 <- dt.d_date_sk
-|  row-size=72B cardinality=3.04K
-|
-|--09:EXCHANGE [HASH(dt.d_date_sk)]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_moy = 12
-|     row-size=12B cardinality=6.09K
-|
-08:EXCHANGE [HASH(store_sales.ss_sold_date_sk)]
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  runtime filters: RF002 <- item.i_item_sk
-|  row-size=60B cardinality=3.04K
-|
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manufact_id = 436
-|     row-size=44B cardinality=19
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=52.62MB Threads=12
-Per-Host Resource Estimates: Memory=127MB
-PLAN-ROOT SINK
-|
-12:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  row-size=52B cardinality=100
-|
-11:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=3.04K
-|
-10:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=3.04K
-|
-04:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  row-size=72B cardinality=3.04K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: dt.d_date_sk
-|  |  runtime filters: RF000 <- dt.d_date_sk
-|  |
-|  09:EXCHANGE [HASH(dt.d_date_sk)]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_moy = 12
-|     row-size=12B cardinality=6.09K
-|
-08:EXCHANGE [HASH(store_sales.ss_sold_date_sk)]
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  row-size=60B cardinality=3.04K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: item.i_item_sk
-|  |  runtime filters: RF002 <- item.i_item_sk
-|  |
-|  07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manufact_id = 436
-|     row-size=44B cardinality=19
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
-====
-# TPCDS-Q7
-select
-  i_item_id,
-  avg(ss_quantity) agg1,
-  avg(ss_list_price) agg2,
-  avg(ss_coupon_amt) agg3,
-  avg(ss_sales_price) agg4
-from
-  store_sales,
-  customer_demographics,
-  date_dim,
-  item,
-  promotion
-where
-  ss_sold_date_sk = d_date_sk
-  and ss_item_sk = i_item_sk
-  and ss_cdemo_sk = cd_demo_sk
-  and ss_promo_sk = p_promo_sk
-  and cd_gender = 'F'
-  and cd_marital_status = 'W'
-  and cd_education_status = 'Primary'
-  and (p_channel_email = 'N'
-    or p_channel_event = 'N')
-  and d_year = 1998
-group by
-  i_item_id
-order by
-  i_item_id
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=50.38MB Threads=6
-Per-Host Resource Estimates: Memory=434MB
-PLAN-ROOT SINK
-|
-10:TOP-N [LIMIT=100]
-|  order by: i_item_id ASC
-|  row-size=60B cardinality=100
-|
-09:AGGREGATE [FINALIZE]
-|  output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
-|  group by: i_item_id
-|  row-size=60B cardinality=8.85K
-|
-08:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF000 <- i_item_sk
-|  row-size=162B cardinality=261.60K
-|
-|--03:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=36B cardinality=18.00K
-|
-07:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_promo_sk = p_promo_sk
-|  runtime filters: RF002 <- p_promo_sk
-|  row-size=126B cardinality=261.60K
-|
-|--04:SCAN HDFS [tpcds.promotion]
-|     HDFS partitions=1/1 files=1 size=36.36KB
-|     predicates: (p_channel_email = 'N' OR p_channel_event = 'N')
-|     row-size=30B cardinality=300
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_cdemo_sk = cd_demo_sk
-|  runtime filters: RF004 <- cd_demo_sk
-|  row-size=96B cardinality=263.34K
-|
-|--01:SCAN HDFS [tpcds.customer_demographics]
-|     HDFS partitions=1/1 files=1 size=76.92MB
-|     predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
-|     row-size=52B cardinality=97.40K
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=44B cardinality=589.03K
-|
-|--02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=8B cardinality=373
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_item_sk, RF002 -> ss_promo_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
-   row-size=36B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=54.31MB Threads=12
-Per-Host Resource Estimates: Memory=460MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_item_id ASC
-|  limit: 100
-|
-10:TOP-N [LIMIT=100]
-|  order by: i_item_id ASC
-|  row-size=60B cardinality=100
-|
-16:AGGREGATE [FINALIZE]
-|  output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
-|  group by: i_item_id
-|  row-size=60B cardinality=8.85K
-|
-15:EXCHANGE [HASH(i_item_id)]
-|
-09:AGGREGATE [STREAMING]
-|  output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
-|  group by: i_item_id
-|  row-size=60B cardinality=8.85K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF000 <- i_item_sk
-|  row-size=162B cardinality=261.60K
-|
-|--14:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=36B cardinality=18.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_promo_sk = p_promo_sk
-|  runtime filters: RF002 <- p_promo_sk
-|  row-size=126B cardinality=261.60K
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.promotion]
-|     HDFS partitions=1/1 files=1 size=36.36KB
-|     predicates: (p_channel_email = 'N' OR p_channel_event = 'N')
-|     row-size=30B cardinality=300
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_cdemo_sk = cd_demo_sk
-|  runtime filters: RF004 <- cd_demo_sk
-|  row-size=96B cardinality=263.34K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.customer_demographics]
-|     HDFS partitions=1/1 files=1 size=76.92MB
-|     predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
-|     row-size=52B cardinality=97.40K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=44B cardinality=589.03K
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=8B cardinality=373
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_item_sk, RF002 -> ss_promo_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
-   row-size=36B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=84.56MB Threads=13
-Per-Host Resource Estimates: Memory=259MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_item_id ASC
-|  limit: 100
-|
-10:TOP-N [LIMIT=100]
-|  order by: i_item_id ASC
-|  row-size=60B cardinality=100
-|
-16:AGGREGATE [FINALIZE]
-|  output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
-|  group by: i_item_id
-|  row-size=60B cardinality=8.85K
-|
-15:EXCHANGE [HASH(i_item_id)]
-|
-09:AGGREGATE [STREAMING]
-|  output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
-|  group by: i_item_id
-|  row-size=60B cardinality=8.85K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=162B cardinality=261.60K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF000 <- i_item_sk
-|  |
-|  14:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=36B cardinality=18.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_promo_sk = p_promo_sk
-|  row-size=126B cardinality=261.60K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: p_promo_sk
-|  |  runtime filters: RF002 <- p_promo_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.promotion]
-|     HDFS partitions=1/1 files=1 size=36.36KB
-|     predicates: (p_channel_email = 'N' OR p_channel_event = 'N')
-|     row-size=30B cardinality=300
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_cdemo_sk = cd_demo_sk
-|  row-size=96B cardinality=263.34K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: cd_demo_sk
-|  |  runtime filters: RF004 <- cd_demo_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.customer_demographics]
-|     HDFS partitions=1/1 files=1 size=76.92MB
-|     predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
-|     row-size=52B cardinality=97.40K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=44B cardinality=589.03K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF006 <- d_date_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=8B cardinality=373
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_item_sk, RF002 -> ss_promo_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
-   row-size=36B cardinality=2.88M
-====
-# TPCDS-Q8
-select
-  s_store_name,
-  sum(ss_net_profit)
-from
-  store_sales
-  join store on (store_sales.ss_store_sk = store.s_store_sk)
-  join
-  (select
-    a.ca_zip
-  from
-    (select
-      substr(ca_zip, 1, 5) ca_zip,
-      count( *) cnt
-    from
-      customer_address
-      join  customer on (customer_address.ca_address_sk = customer.c_current_addr_sk)
-    where
-      c_preferred_cust_flag = 'Y'
-    group by
-      ca_zip
-    having
-      count(*) > 10
-    ) a
-    left semi join
-    (select
-      substr(ca_zip, 1, 5) ca_zip
-    from
-      customer_address
-    where
-      substr(ca_zip, 1, 5) in ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779',
-      '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797',
-      '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068',
-      '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', '32200', '81427', '19053',
-      '77471', '36610', '99823', '43276', '41249', '48584', '83550', '82276', '18842', '78890', '14090', '38123', '40936', '34425',
-      '19850', '43286', '80072', '79188', '54191', '11395', '50497', '84861', '90733', '21068', '57666', '37119', '25004', '57835',
-      '70067', '62878', '95806', '19303', '18840', '19124', '29785', '16737', '16022', '49613', '89977', '68310', '60069', '98360',
-      '48649', '39050', '41793', '25002', '27413', '39736', '47208', '16515', '94808', '57648', '15009', '80015', '42961', '63982',
-      '21744', '71853', '81087', '67468', '34175', '64008', '20261', '11201', '51799', '48043', '45645', '61163', '48375', '36447',
-      '57042', '21218', '41100', '89951', '22745', '35851', '83326', '61125', '78298', '80752', '49858', '52940', '96976', '63792',
-      '11376', '53582', '18717', '90226', '50530', '94203', '99447', '27670', '96577', '57856', '56372', '16165', '23427', '54561',
-      '28806', '44439', '22926', '30123', '61451', '92397', '56979', '92309', '70873', '13355', '21801', '46346', '37562', '56458',
-      '28286', '47306', '99555', '69399', '26234', '47546', '49661', '88601', '35943', '39936', '25632', '24611', '44166', '56648',
-      '30379', '59785', '11110', '14329', '93815', '52226', '71381', '13842', '25612', '63294', '14664', '21077', '82626', '18799',
-      '60915', '81020', '56447', '76619', '11433', '13414', '42548', '92713', '70467', '30884', '47484', '16072', '38936', '13036',
-      '88376', '45539', '35901', '19506', '65690', '73957', '71850', '49231', '14276', '20005', '18384', '76615', '11635', '38177',
-      '55607', '41369', '95447', '58581', '58149', '91946', '33790', '76232', '75692', '95464', '22246', '51061', '56692', '53121',
-      '77209', '15482', '10688', '14868', '45907', '73520', '72666', '25734', '17959', '24677', '66446', '94627', '53535', '15560',
-      '41967', '69297', '11929', '59403', '33283', '52232', '57350', '43933', '40921', '36635', '10827', '71286', '19736', '80619',
-      '25251', '95042', '15526', '36496', '55854', '49124', '81980', '35375', '49157', '63512', '28944', '14946', '36503', '54010',
-      '18767', '23969', '43905', '66979', '33113', '21286', '58471', '59080', '13395', '79144', '70373', '67031', '38360', '26705',
-      '50906', '52406', '26066', '73146', '15884', '31897', '30045', '61068', '45550', '92454', '13376', '14354', '19770', '22928',
-      '97790', '50723', '46081', '30202', '14410', '20223', '88500', '67298', '13261', '14172', '81410', '93578', '83583', '46047',
-      '94167', '82564', '21156', '15799', '86709', '37931', '74703', '83103', '23054', '70470', '72008', '49247', '91911', '69998',
-      '20961', '70070', '63197', '54853', '88191', '91830', '49521', '19454', '81450', '89091', '62378', '25683', '61869', '51744',
-      '36580', '85778', '36871', '48121', '28810', '83712', '45486', '67393', '26935', '42393', '20132', '55349', '86057', '21309',
-      '80218', '10094', '11357', '48819', '39734', '40758', '30432', '21204', '29467', '30214', '61024', '55307', '74621', '11622',
-      '68908', '33032', '52868', '99194', '99900', '84936', '69036', '99149', '45013', '32895', '59004', '32322', '14933', '32936',
-      '33562', '72550', '27385', '58049', '58200', '16808', '21360', '32961', '18586', '79307', '15492')
-    ) b
-  on (a.ca_zip = b.ca_zip)
-  ) v1 on (substr(store.s_zip, 1, 2) = substr(v1.ca_zip, 1, 2))
-where
-  ss_sold_date_sk between 2452276 and 2452366
-group by
-  s_store_name
-order by
-  s_store_name
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=32.38MB Threads=6
-Per-Host Resource Estimates: Memory=280MB
-PLAN-ROOT SINK
-|
-11:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC
-|  row-size=32B cardinality=8
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum(ss_net_profit)
-|  group by: s_store_name
-|  row-size=32B cardinality=8
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: substr(store.s_zip, 1, 2) = substr(substr(ca_zip, 1, 5), 1, 2)
-|  runtime filters: RF000 <- substr(substr(ca_zip, 1, 5), 1, 2)
-|  row-size=65B cardinality=84.40K
-|
-|--07:HASH JOIN [RIGHT SEMI JOIN]
-|  |  hash predicates: substr(ca_zip, 1, 5) = substr(ca_zip, 1, 5)
-|  |  runtime filters: RF004 <- substr(ca_zip, 1, 5)
-|  |  row-size=20B cardinality=396
-|  |
-|  |--05:AGGREGATE [FINALIZE]
-|  |  |  output: count(*)
-|  |  |  group by: substr(ca_zip, 1, 5)
-|  |  |  having: count(*) > 10
-|  |  |  row-size=20B cardinality=396
-|  |  |
-|  |  04:HASH JOIN [INNER JOIN]
-|  |  |  hash predicates: customer_address.ca_address_sk = customer.c_current_addr_sk
-|  |  |  runtime filters: RF006 <- customer.c_current_addr_sk
-|  |  |  row-size=38B cardinality=51.30K
-|  |  |
-|  |  |--03:SCAN HDFS [tpcds.customer]
-|  |  |     HDFS partitions=1/1 files=1 size=12.60MB
-|  |  |     predicates: c_preferred_cust_flag = 'Y'
-|  |  |     row-size=17B cardinality=50.00K
-|  |  |
-|  |  02:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     runtime filters: RF006 -> customer_address.ca_address_sk
-|  |     row-size=21B cardinality=50.00K
-|  |
-|  06:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     predicates: substr(ca_zip, 1, 5) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', [...]
-|     runtime filters: RF004 -> substr(ca_zip, 1, 5)
-|     row-size=17B cardinality=5.00K
-|
-08:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF002 <- store.s_store_sk
-|  row-size=45B cardinality=84.40K
-|
-|--01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF000 -> substr(store.s_zip, 1, 2)
-|     row-size=37B cardinality=12
-|
-00:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2452276, ss_sold_date_sk <= 2452366
-   HDFS partitions=90/1824 files=90 size=10.32MB
-   runtime filters: RF002 -> store_sales.ss_store_sk
-   row-size=8B cardinality=84.40K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=46.13MB Threads=13
-Per-Host Resource Estimates: Memory=327MB
-PLAN-ROOT SINK
-|
-20:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name ASC
-|  limit: 100
-|
-11:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC
-|  row-size=32B cardinality=8
-|
-19:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_net_profit)
-|  group by: s_store_name
-|  row-size=32B cardinality=8
-|
-18:EXCHANGE [HASH(s_store_name)]
-|
-10:AGGREGATE [STREAMING]
-|  output: sum(ss_net_profit)
-|  group by: s_store_name
-|  row-size=32B cardinality=8
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: substr(store.s_zip, 1, 2) = substr(substr(ca_zip, 1, 5), 1, 2)
-|  runtime filters: RF000 <- substr(substr(ca_zip, 1, 5), 1, 2)
-|  row-size=65B cardinality=84.40K
-|
-|--17:EXCHANGE [BROADCAST]
-|  |
-|  07:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
-|  |  hash predicates: substr(ca_zip, 1, 5) = substr(ca_zip, 1, 5)
-|  |  runtime filters: RF004 <- substr(ca_zip, 1, 5)
-|  |  row-size=20B cardinality=396
-|  |
-|  |--15:AGGREGATE [FINALIZE]
-|  |  |  output: count:merge(*)
-|  |  |  group by: substr(ca_zip, 1, 5)
-|  |  |  having: count(*) > 10
-|  |  |  row-size=20B cardinality=396
-|  |  |
-|  |  14:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
-|  |  |
-|  |  05:AGGREGATE [STREAMING]
-|  |  |  output: count(*)
-|  |  |  group by: substr(ca_zip, 1, 5)
-|  |  |  row-size=20B cardinality=3.96K
-|  |  |
-|  |  04:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  |  hash predicates: customer_address.ca_address_sk = customer.c_current_addr_sk
-|  |  |  runtime filters: RF006 <- customer.c_current_addr_sk
-|  |  |  row-size=38B cardinality=51.30K
-|  |  |
-|  |  |--13:EXCHANGE [BROADCAST]
-|  |  |  |
-|  |  |  03:SCAN HDFS [tpcds.customer]
-|  |  |     HDFS partitions=1/1 files=1 size=12.60MB
-|  |  |     predicates: c_preferred_cust_flag = 'Y'
-|  |  |     row-size=17B cardinality=50.00K
-|  |  |
-|  |  02:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     runtime filters: RF006 -> customer_address.ca_address_sk
-|  |     row-size=21B cardinality=50.00K
-|  |
-|  16:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
-|  |
-|  06:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     predicates: substr(ca_zip, 1, 5) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', [...]
-|     runtime filters: RF004 -> substr(ca_zip, 1, 5)
-|     row-size=17B cardinality=5.00K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF002 <- store.s_store_sk
-|  row-size=45B cardinality=84.40K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF000 -> substr(store.s_zip, 1, 2)
-|     row-size=37B cardinality=12
-|
-00:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2452276, ss_sold_date_sk <= 2452366
-   HDFS partitions=90/1824 files=90 size=10.32MB
-   runtime filters: RF002 -> store_sales.ss_store_sk
-   row-size=8B cardinality=84.40K
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=58.38MB Threads=14
-Per-Host Resource Estimates: Memory=187MB
-PLAN-ROOT SINK
-|
-20:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name ASC
-|  limit: 100
-|
-11:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC
-|  row-size=32B cardinality=8
-|
-19:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_net_profit)
-|  group by: s_store_name
-|  row-size=32B cardinality=8
-|
-18:EXCHANGE [HASH(s_store_name)]
-|
-10:AGGREGATE [STREAMING]
-|  output: sum(ss_net_profit)
-|  group by: s_store_name
-|  row-size=32B cardinality=8
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: substr(store.s_zip, 1, 2) = substr(substr(ca_zip, 1, 5), 1, 2)
-|  row-size=65B cardinality=84.40K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: substr(substr(ca_zip, 1, 5), 1, 2)
-|  |  runtime filters: RF000 <- substr(substr(ca_zip, 1, 5), 1, 2)
-|  |
-|  17:EXCHANGE [BROADCAST]
-|  |
-|  07:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
-|  |  hash predicates: substr(ca_zip, 1, 5) = substr(ca_zip, 1, 5)
-|  |  row-size=20B cardinality=396
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=01 plan-id=02 cohort-id=02
-|  |  |  build expressions: substr(ca_zip, 1, 5)
-|  |  |  runtime filters: RF004 <- substr(ca_zip, 1, 5)
-|  |  |
-|  |  15:AGGREGATE [FINALIZE]
-|  |  |  output: count:merge(*)
-|  |  |  group by: substr(ca_zip, 1, 5)
-|  |  |  having: count(*) > 10
-|  |  |  row-size=20B cardinality=396
-|  |  |
-|  |  14:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
-|  |  |
-|  |  05:AGGREGATE [STREAMING]
-|  |  |  output: count(*)
-|  |  |  group by: substr(ca_zip, 1, 5)
-|  |  |  row-size=20B cardinality=3.96K
-|  |  |
-|  |  04:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  |  hash predicates: customer_address.ca_address_sk = customer.c_current_addr_sk
-|  |  |  row-size=38B cardinality=51.30K
-|  |  |
-|  |  |--JOIN BUILD
-|  |  |  |  join-table-id=02 plan-id=03 cohort-id=03
-|  |  |  |  build expressions: customer.c_current_addr_sk
-|  |  |  |  runtime filters: RF006 <- customer.c_current_addr_sk
-|  |  |  |
-|  |  |  13:EXCHANGE [BROADCAST]
-|  |  |  |
-|  |  |  03:SCAN HDFS [tpcds.customer]
-|  |  |     HDFS partitions=1/1 files=1 size=12.60MB
-|  |  |     predicates: c_preferred_cust_flag = 'Y'
-|  |  |     row-size=17B cardinality=50.00K
-|  |  |
-|  |  02:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     runtime filters: RF006 -> customer_address.ca_address_sk
-|  |     row-size=21B cardinality=50.00K
-|  |
-|  16:EXCHANGE [HASH(substr(ca_zip, 1, 5))]
-|  |
-|  06:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     predicates: substr(ca_zip, 1, 5) IN ('89436', '30868', '65085', '22977', '83927', '77557', '58429', '40697', '80614', '10502', '32779', '91137', '61265', '98294', '17921', '18427', '21203', '59362', '87291', '84093', '21505', '17184', '10866', '67898', '25797', '28055', '18377', '80332', '74535', '21757', '29742', '90885', '29898', '17819', '40811', '25990', '47513', '89531', '91068', '10391', '18846', '99223', '82637', '41368', '83658', '86199', '81625', '26696', '89338', '88425', [...]
-|     runtime filters: RF004 -> substr(ca_zip, 1, 5)
-|     row-size=17B cardinality=5.00K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  row-size=45B cardinality=84.40K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: store.s_store_sk
-|  |  runtime filters: RF002 <- store.s_store_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF000 -> substr(store.s_zip, 1, 2)
-|     row-size=37B cardinality=12
-|
-00:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2452276, ss_sold_date_sk <= 2452366
-   HDFS partitions=90/1824 files=90 size=10.32MB
-   runtime filters: RF002 -> store_sales.ss_store_sk
-   row-size=8B cardinality=84.40K
-====
-# TPCDS-Q13
-select avg(ss_quantity)
-       ,avg(ss_ext_sales_price)
-       ,avg(ss_ext_wholesale_cost)
-       ,sum(ss_ext_wholesale_cost)
- from store_sales
-     ,store
-     ,customer_demographics
-     ,household_demographics
-     ,customer_address
-     ,date_dim
- where s_store_sk = ss_store_sk
- and  ss_sold_date_sk = d_date_sk and d_year = 2001
- and((ss_hdemo_sk=hd_demo_sk
-  and cd_demo_sk = ss_cdemo_sk
-  and cd_marital_status = 'M'
-  and cd_education_status = 'Advanced Degree'
-  and ss_sales_price between 100.00 and 150.00
-  and hd_dep_count = 3
-     )or
-     (ss_hdemo_sk=hd_demo_sk
-  and cd_demo_sk = ss_cdemo_sk
-  and cd_marital_status = 'S'
-  and cd_education_status = 'College'
-  and ss_sales_price between 50.00 and 100.00
-  and hd_dep_count = 1
-     ) or
-     (ss_hdemo_sk=hd_demo_sk
-  and cd_demo_sk = ss_cdemo_sk
-  and cd_marital_status = 'W'
-  and cd_education_status = '2 yr Degree'
-  and ss_sales_price between 150.00 and 200.00
-  and hd_dep_count = 1
-     ))
- and((ss_addr_sk = ca_address_sk
-  and ca_country = 'United States'
-  and ca_state in ('TX', 'OH', 'TX')
-  and ss_net_profit between 100 and 200
-     ) or
-     (ss_addr_sk = ca_address_sk
-  and ca_country = 'United States'
-  and ca_state in ('OR', 'NM', 'KY')
-  and ss_net_profit between 150 and 300
-     ) or
-     (ss_addr_sk = ca_address_sk
-  and ca_country = 'United States'
-  and ca_state in ('VA', 'TX', 'MS')
-  and ss_net_profit between 50 and 250
-     ))
----- PLAN
-Max Per-Host Resource Reservation: Memory=45.01MB Threads=7
-Per-Host Resource Estimates: Memory=461MB
-PLAN-ROOT SINK
-|
-11:AGGREGATE [FINALIZE]
-|  output: avg(ss_quantity), avg(ss_ext_sales_price), avg(ss_ext_wholesale_cost), sum(ss_ext_wholesale_cost)
-|  row-size=40B cardinality=1
-|
-10:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=142B cardinality=2.55K
-|
-|--01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: cd_demo_sk = ss_cdemo_sk
-|  other predicates: cd_education_status = 'Advanced Degree' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR hd_dep_count = 1, cd_marital_status = 'M' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR hd_dep_count = 1, hd_dep_count = 3 OR cd_education_status = 'College' OR hd_dep_count = 1, cd_education_status = 'Advanced Degree' OR hd_dep_count = 1 OR hd_dep_count = 1, hd_dep_count IN (3, 1) OR cd_education_status = '2 yr Degree', hd_dep_count = 3 OR cd [...]
-|  runtime filters: RF002 <- ss_cdemo_sk
-|  row-size=138B cardinality=2.55K
-|
-|--08:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = hd_demo_sk
-|  |  other predicates: hd_dep_count IN (3, 1) OR ss_sales_price <= 200.00, hd_dep_count IN (3, 1) OR ss_sales_price >= 150.00, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR hd_dep_count = 1, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR ss_sales_price <= 200.00, hd_dep_count = 3 OR ss_sales_price <= 100.00 OR ss_sales_price >= 150.00, hd_dep_count = 3 OR ss_sales_price >= 50.00 OR hd_dep_count = 1, hd_dep_count = 3 OR ss_sales_price >= 50.00 OR ss_sales_price <= 200.00, hd_dep_count [...]
-|  |  runtime filters: RF004 <- hd_demo_sk
-|  |  row-size=99B cardinality=3.05K
-|  |
-|  |--03:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: hd_dep_count IN (3, 1, 1)
-|  |     row-size=8B cardinality=2.16K
-|  |
-|  07:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF006 <- d_date_sk
-|  |  row-size=91B cardinality=10.43K
-|  |
-|  |--05:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_year = 2001
-|  |     row-size=8B cardinality=373
-|  |
-|  06:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_addr_sk = ca_address_sk
-|  |  other predicates: ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit <= 300 OR ss_net_profit <= 250, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit <= 300 OR ss_net_profit >= 50, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit >= 150 OR ss_net_profit <= 250, ca_state IN ('TX', 'OH', 'TX') OR ss_net_profit >= 150 OR ss_net_profit >= 50, ss_net_profit <= 200 OR ca_state IN ('OR', 'NM', 'KY') OR ss_net_profit <= 250, ss_net_profit <= 200 OR ca_state IN ('OR', 'NM', 'KY') OR ss_net_profi [...]
-|  |  runtime filters: RF008 <- ca_address_sk
-|  |  row-size=83B cardinality=50.98K
-|  |
-|  |--04:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     predicates: ca_state IN ('TX', 'OH', 'TX', 'OR', 'NM', 'KY', 'VA', 'TX', 'MS'), ca_country = 'United States'
-|  |     row-size=43B cardinality=8.82K
-|  |
-|  00:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_net_profit <= 200 OR ss_net_profit <= 300 OR ss_net_profit <= 250, ss_net_profit <= 200 OR ss_net_profit <= 300 OR ss_net_profit >= 50, ss_net_profit <= 200 OR ss_net_profit >= 150 OR ss_net_profit <= 250, ss_net_profit <= 200 OR ss_net_profit >= 150 OR ss_net_profit >= 50, ss_net_profit >= 100 OR ss_net_profit <= 300 OR ss_net_profit <= 250, ss_net_profit >= 100 OR ss_net_profit <= 300 OR ss_net_profit >= 50, ss_net_profit >= 100 OR ss_net_profit >= 150 OR ss_net_pr [...]
-|     runtime filters: RF000 -> ss_store_sk, RF004 -> ss_hdemo_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_addr_sk
-|     row-size=40B cardinality=288.04K
-|
-02:SCAN HDFS [tpcds.customer_demographics]
-   HDFS partitions=1/1 files=1 size=76.92MB
-   predicates: cd_marital_status = 'M' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR cd_marital_status = 'W' AND cd_education_status = '2 yr Degree', cd_education_status = 'Advanced Degree' OR cd_marital_status = 'S' AND cd_education_status = 'College' OR cd_marital_status = 'W' AND cd_education_status = '2 yr Degree'
-   runtime filters: RF002 -> cd_demo_sk
-   row-size=39B cardinality=181.75K
-====
-# TPCDS-Q19
-select
-  i_brand_id brand_id,
-  i_brand brand,
-  i_manufact_id,
-  i_manufact,
-  sum(ss_ext_sales_price) ext_price
-from
-  date_dim,
-  store_sales,
-  item,
-  customer,
-  customer_address,
-  store
-where
-  d_date_sk = ss_sold_date_sk
-  and ss_item_sk = i_item_sk
-  and i_manager_id = 7
-  and d_moy = 11
-  and d_year = 1999
-  and ss_customer_sk = c_customer_sk
-  and c_current_addr_sk = ca_address_sk
-  and substr(ca_zip, 1, 5) <> substr(s_zip, 1, 5)
-  and ss_store_sk = s_store_sk
-  and ss_sold_date_sk between 2451484 and 2451513
-group by
-  i_brand,
-  i_brand_id,
-  i_manufact_id,
-  i_manufact
-order by
-  ext_price desc,
-  i_brand,
-  i_brand_id,
-  i_manufact_id,
-  i_manufact
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=43.32MB Threads=7
-Per-Host Resource Estimates: Memory=331MB
-PLAN-ROOT SINK
-|
-12:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
-|  row-size=76B cardinality=24
-|
-11:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id, i_manufact_id, i_manufact
-|  row-size=76B cardinality=24
-|
-10:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  other predicates: substr(ca_zip, 1, 5) != substr(s_zip, 1, 5)
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=158B cardinality=24
-|
-|--05:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=21B cardinality=12
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: ca_address_sk = c_current_addr_sk
-|  runtime filters: RF002 <- c_current_addr_sk
-|  row-size=137B cardinality=24
-|
-|--08:HASH JOIN [INNER JOIN]
-|  |  hash predicates: c_customer_sk = ss_customer_sk
-|  |  runtime filters: RF004 <- ss_customer_sk
-|  |  row-size=116B cardinality=24
-|  |
-|  |--07:HASH JOIN [INNER JOIN]
-|  |  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  |  runtime filters: RF006 <- d_date_sk
-|  |  |  row-size=108B cardinality=24
-|  |  |
-|  |  |--00:SCAN HDFS [tpcds.date_dim]
-|  |  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |  |     predicates: d_year = 1999, d_moy = 11, tpcds.date_dim.d_date_sk <= 2451513, tpcds.date_dim.d_date_sk >= 2451484
-|  |  |     row-size=12B cardinality=50
-|  |  |
-|  |  06:HASH JOIN [INNER JOIN]
-|  |  |  hash predicates: ss_item_sk = i_item_sk
-|  |  |  runtime filters: RF008 <- i_item_sk
-|  |  |  row-size=96B cardinality=873
-|  |  |
-|  |  |--02:SCAN HDFS [tpcds.item]
-|  |  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |  |     predicates: i_manager_id = 7
-|  |  |     row-size=72B cardinality=182
-|  |  |
-|  |  01:SCAN HDFS [tpcds.store_sales]
-|  |     partition predicates: ss_sold_date_sk >= 2451484, ss_sold_date_sk <= 2451513
-|  |     HDFS partitions=30/1824 files=30 size=10.55MB
-|  |     runtime filters: RF000 -> ss_store_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_item_sk
-|  |     row-size=24B cardinality=86.28K
-|  |
-|  03:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF004 -> c_customer_sk
-|     row-size=8B cardinality=100.00K
-|
-04:SCAN HDFS [tpcds.customer_address]
-   HDFS partitions=1/1 files=1 size=5.25MB
-   runtime filters: RF002 -> ca_address_sk
-   row-size=21B cardinality=50.00K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=54.13MB Threads=16
-Per-Host Resource Estimates: Memory=360MB
-PLAN-ROOT SINK
-|
-22:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
-|  limit: 100
-|
-12:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
-|  row-size=76B cardinality=24
-|
-21:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id, i_manufact_id, i_manufact
-|  row-size=76B cardinality=24
-|
-20:EXCHANGE [HASH(i_brand,i_brand_id,i_manufact_id,i_manufact)]
-|
-11:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id, i_manufact_id, i_manufact
-|  row-size=76B cardinality=24
-|
-10:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  other predicates: substr(ca_zip, 1, 5) != substr(s_zip, 1, 5)
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=158B cardinality=24
-|
-|--19:EXCHANGE [BROADCAST]
-|  |
-|  05:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=21B cardinality=12
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: c_current_addr_sk = ca_address_sk
-|  runtime filters: RF002 <- ca_address_sk
-|  row-size=137B cardinality=24
-|
-|--18:EXCHANGE [HASH(ca_address_sk)]
-|  |
-|  04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=21B cardinality=50.00K
-|
-17:EXCHANGE [HASH(c_current_addr_sk)]
-|
-08:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF004 <- c_customer_sk
-|  row-size=116B cardinality=24
-|
-|--16:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  03:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF002 -> c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-15:EXCHANGE [HASH(ss_customer_sk)]
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=108B cardinality=24
-|
-|--14:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1999, d_moy = 11, tpcds.date_dim.d_date_sk <= 2451513, tpcds.date_dim.d_date_sk >= 2451484
-|     row-size=12B cardinality=50
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF008 <- i_item_sk
-|  row-size=96B cardinality=873
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_manager_id = 7
-|     row-size=72B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451484, ss_sold_date_sk <= 2451513
-   HDFS partitions=30/1824 files=30 size=10.55MB
-   runtime filters: RF000 -> ss_store_sk, RF004 -> ss_customer_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_item_sk
-   row-size=24B cardinality=86.28K
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=72.26MB Threads=21
-Per-Host Resource Estimates: Memory=203MB
-PLAN-ROOT SINK
-|
-22:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
-|  limit: 100
-|
-12:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand ASC, i_brand_id ASC, i_manufact_id ASC, i_manufact ASC
-|  row-size=76B cardinality=24
-|
-21:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id, i_manufact_id, i_manufact
-|  row-size=76B cardinality=24
-|
-20:EXCHANGE [HASH(i_brand,i_brand_id,i_manufact_id,i_manufact)]
-|
-11:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id, i_manufact_id, i_manufact
-|  row-size=76B cardinality=24
-|
-10:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  other predicates: substr(ca_zip, 1, 5) != substr(s_zip, 1, 5)
-|  row-size=158B cardinality=24
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF000 <- s_store_sk
-|  |
-|  19:EXCHANGE [BROADCAST]
-|  |
-|  05:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=21B cardinality=12
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: c_current_addr_sk = ca_address_sk
-|  row-size=137B cardinality=24
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: ca_address_sk
-|  |  runtime filters: RF002 <- ca_address_sk
-|  |
-|  18:EXCHANGE [HASH(ca_address_sk)]
-|  |
-|  04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=21B cardinality=50.00K
-|
-17:EXCHANGE [HASH(c_current_addr_sk)]
-|
-08:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=116B cardinality=24
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF004 <- c_customer_sk
-|  |
-|  16:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  03:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF002 -> c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-15:EXCHANGE [HASH(ss_customer_sk)]
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=108B cardinality=24
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF006 <- d_date_sk
-|  |
-|  14:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1999, d_moy = 11, tpcds.date_dim.d_date_sk <= 2451513, tpcds.date_dim.d_date_sk >= 2451484
-|     row-size=12B cardinality=50
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=96B cardinality=873
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF008 <- i_item_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_manager_id = 7
-|     row-size=72B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451484, ss_sold_date_sk <= 2451513
-   HDFS partitions=30/1824 files=30 size=10.55MB
-   runtime filters: RF000 -> ss_store_sk, RF004 -> ss_customer_sk, RF006 -> ss_sold_date_sk, RF008 -> ss_item_sk
-   row-size=24B cardinality=86.28K
-====
-# TPCDS-Q27
-select
-  i_item_id,
-  s_state,
-  avg(ss_quantity) agg1,
-  avg(ss_list_price) agg2,
-  avg(ss_coupon_amt) agg3,
-  avg(ss_sales_price) agg4
-from
-  store_sales,
-  customer_demographics,
-  date_dim,
-  store,
-  item
-where
-  ss_sold_date_sk = d_date_sk
-  and ss_item_sk = i_item_sk
-  and ss_store_sk = s_store_sk
-  and ss_cdemo_sk = cd_demo_sk
-  and cd_gender = 'F'
-  and cd_marital_status = 'W'
-  and cd_education_status = 'Primary'
-  and d_year = 1998
-  and s_state in ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
-group by
-  i_item_id,
-  s_state
-order by
-  i_item_id,
-  s_state
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=50.32MB Threads=6
-Per-Host Resource Estimates: Memory=434MB
-PLAN-ROOT SINK
-|
-10:TOP-N [LIMIT=100]
-|  order by: i_item_id ASC, s_state ASC
-|  row-size=74B cardinality=100
-|
-09:AGGREGATE [FINALIZE]
-|  output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
-|  group by: i_item_id, s_state
-|  row-size=74B cardinality=8.85K
-|
-08:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF000 <- i_item_sk
-|  row-size=150B cardinality=263.34K
-|
-|--04:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=36B cardinality=18.00K
-|
-07:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF002 <- s_store_sk
-|  row-size=114B cardinality=263.34K
-|
-|--03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_state IN ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
-|     row-size=18B cardinality=12
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_cdemo_sk = cd_demo_sk
-|  runtime filters: RF004 <- cd_demo_sk
-|  row-size=96B cardinality=263.34K
-|
-|--01:SCAN HDFS [tpcds.customer_demographics]
-|     HDFS partitions=1/1 files=1 size=76.92MB
-|     predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
-|     row-size=52B cardinality=97.40K
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=44B cardinality=589.03K
-|
-|--02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=8B cardinality=373
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
-   row-size=36B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=54.26MB Threads=12
-Per-Host Resource Estimates: Memory=460MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_item_id ASC, s_state ASC
-|  limit: 100
-|
-10:TOP-N [LIMIT=100]
-|  order by: i_item_id ASC, s_state ASC
-|  row-size=74B cardinality=100
-|
-16:AGGREGATE [FINALIZE]
-|  output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
-|  group by: i_item_id, s_state
-|  row-size=74B cardinality=8.85K
-|
-15:EXCHANGE [HASH(i_item_id,s_state)]
-|
-09:AGGREGATE [STREAMING]
-|  output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
-|  group by: i_item_id, s_state
-|  row-size=74B cardinality=8.85K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF000 <- i_item_sk
-|  row-size=150B cardinality=263.34K
-|
-|--14:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=36B cardinality=18.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF002 <- s_store_sk
-|  row-size=114B cardinality=263.34K
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_state IN ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
-|     row-size=18B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_cdemo_sk = cd_demo_sk
-|  runtime filters: RF004 <- cd_demo_sk
-|  row-size=96B cardinality=263.34K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.customer_demographics]
-|     HDFS partitions=1/1 files=1 size=76.92MB
-|     predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
-|     row-size=52B cardinality=97.40K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=44B cardinality=589.03K
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=8B cardinality=373
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
-   row-size=36B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=84.51MB Threads=13
-Per-Host Resource Estimates: Memory=260MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_item_id ASC, s_state ASC
-|  limit: 100
-|
-10:TOP-N [LIMIT=100]
-|  order by: i_item_id ASC, s_state ASC
-|  row-size=74B cardinality=100
-|
-16:AGGREGATE [FINALIZE]
-|  output: avg:merge(ss_quantity), avg:merge(ss_list_price), avg:merge(ss_coupon_amt), avg:merge(ss_sales_price)
-|  group by: i_item_id, s_state
-|  row-size=74B cardinality=8.85K
-|
-15:EXCHANGE [HASH(i_item_id,s_state)]
-|
-09:AGGREGATE [STREAMING]
-|  output: avg(ss_quantity), avg(ss_list_price), avg(ss_coupon_amt), avg(ss_sales_price)
-|  group by: i_item_id, s_state
-|  row-size=74B cardinality=8.85K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=150B cardinality=263.34K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF000 <- i_item_sk
-|  |
-|  14:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=36B cardinality=18.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=114B cardinality=263.34K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF002 <- s_store_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_state IN ('WI', 'CA', 'TX', 'FL', 'WA', 'TN')
-|     row-size=18B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_cdemo_sk = cd_demo_sk
-|  row-size=96B cardinality=263.34K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: cd_demo_sk
-|  |  runtime filters: RF004 <- cd_demo_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.customer_demographics]
-|     HDFS partitions=1/1 files=1 size=76.92MB
-|     predicates: cd_marital_status = 'W', cd_gender = 'F', cd_education_status = 'Primary'
-|     row-size=52B cardinality=97.40K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=44B cardinality=589.03K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF006 <- d_date_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=8B cardinality=373
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_item_sk, RF002 -> ss_store_sk, RF004 -> ss_cdemo_sk, RF006 -> ss_sold_date_sk
-   row-size=36B cardinality=2.88M
-====
-# TPCDS-Q34
-select
-  c_last_name,
-  c_first_name,
-  c_salutation,
-  c_preferred_cust_flag,
-  ss_ticket_number,
-  cnt
-from
-  (select
-    ss_ticket_number,
-    ss_customer_sk,
-    count(*) cnt
-  from
-    store_sales,
-    date_dim,
-    store,
-    household_demographics
-  where
-    store_sales.ss_sold_date_sk = date_dim.d_date_sk
-    and store_sales.ss_store_sk = store.s_store_sk
-    and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-    and (date_dim.d_dom between 1 and 3
-      or date_dim.d_dom between 25 and 28)
-    and (household_demographics.hd_buy_potential = '>10000'
-      or household_demographics.hd_buy_potential = 'unknown')
-    and household_demographics.hd_vehicle_count > 0
-    and (case when household_demographics.hd_vehicle_count > 0 then household_demographics.hd_dep_count / household_demographics.hd_vehicle_count else null end) > 1.2
-    and date_dim.d_year in (1998, 1998 + 1, 1998 + 2)
-    and store.s_county in ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
-  group by
-    ss_ticket_number,
-    ss_customer_sk
-  ) dn,
-  customer
-where
-  ss_customer_sk = c_customer_sk
-  and cnt between 15 and 20
-order by
-  c_last_name,
-  c_first_name,
-  c_salutation,
-  c_preferred_cust_flag desc
-limit 100000
----- PLAN
-Max Per-Host Resource Reservation: Memory=34.07MB Threads=6
-Per-Host Resource Estimates: Memory=298MB
-PLAN-ROOT SINK
-|
-10:TOP-N [LIMIT=100000]
-|  order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
-|  row-size=80B cardinality=3.15K
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: c_customer_sk = ss_customer_sk
-|  runtime filters: RF000 <- ss_customer_sk
-|  row-size=88B cardinality=3.15K
-|
-|--07:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  group by: ss_ticket_number, ss_customer_sk
-|  |  having: count(*) <= 20, count(*) >= 15
-|  |  row-size=20B cardinality=3.15K
-|  |
-|  06:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  |  runtime filters: RF002 <- store.s_store_sk
-|  |  row-size=101B cardinality=31.53K
-|  |
-|  |--02:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
-|  |     row-size=33B cardinality=12
-|  |
-|  05:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  |  runtime filters: RF004 <- date_dim.d_date_sk
-|  |  row-size=68B cardinality=31.53K
-|  |
-|  |--01:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: date_dim.d_year IN (1998, 1999, 2000), (date_dim.d_dom >= 1 AND date_dim.d_dom <= 3 OR date_dim.d_dom >= 25 AND date_dim.d_dom <= 28)
-|  |     row-size=12B cardinality=354
-|  |
-|  04:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  |  row-size=56B cardinality=162.45K
-|  |
-|  |--03:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), (CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END) > 1.2
-|  |     row-size=32B cardinality=416
-|  |
-|  00:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
-|     row-size=24B cardinality=2.88M
-|
-08:SCAN HDFS [tpcds.customer]
-   HDFS partitions=1/1 files=1 size=12.60MB
-   runtime filters: RF000 -> c_customer_sk
-   row-size=68B cardinality=100.00K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=47.51MB Threads=13
-Per-Host Resource Estimates: Memory=335MB
-PLAN-ROOT SINK
-|
-18:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
-|  limit: 100000
-|
-10:TOP-N [LIMIT=100000]
-|  order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
-|  row-size=80B cardinality=3.15K
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF000 <- c_customer_sk
-|  row-size=88B cardinality=3.15K
-|
-|--17:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  08:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     row-size=68B cardinality=100.00K
-|
-16:EXCHANGE [HASH(ss_customer_sk)]
-|
-15:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  having: count(*) <= 20, count(*) >= 15
-|  row-size=20B cardinality=3.15K
-|
-14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
-|
-07:AGGREGATE [STREAMING]
-|  output: count(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  row-size=20B cardinality=31.53K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF002 <- store.s_store_sk
-|  row-size=101B cardinality=31.53K
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
-|     row-size=33B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF004 <- date_dim.d_date_sk
-|  row-size=68B cardinality=31.53K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: date_dim.d_year IN (1998, 1999, 2000), (date_dim.d_dom >= 1 AND date_dim.d_dom <= 3 OR date_dim.d_dom >= 25 AND date_dim.d_dom <= 28)
-|     row-size=12B cardinality=354
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  row-size=56B cardinality=162.45K
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), (CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END) > 1.2
-|     row-size=32B cardinality=416
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
-   row-size=24B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=68.26MB Threads=14
-Per-Host Resource Estimates: Memory=188MB
-PLAN-ROOT SINK
-|
-18:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
-|  limit: 100000
-|
-10:TOP-N [LIMIT=100000]
-|  order by: c_last_name ASC, c_first_name ASC, c_salutation ASC, c_preferred_cust_flag DESC
-|  row-size=80B cardinality=3.15K
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=88B cardinality=3.15K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF000 <- c_customer_sk
-|  |
-|  17:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  08:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     row-size=68B cardinality=100.00K
-|
-16:EXCHANGE [HASH(ss_customer_sk)]
-|
-15:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  having: count(*) <= 20, count(*) >= 15
-|  row-size=20B cardinality=3.15K
-|
-14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
-|
-07:AGGREGATE [STREAMING]
-|  output: count(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  row-size=20B cardinality=31.53K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  row-size=101B cardinality=31.53K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: store.s_store_sk
-|  |  runtime filters: RF002 <- store.s_store_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County', 'Fairfield County', 'Raleigh County', 'Ziebach County', 'Williamson County')
-|     row-size=33B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  row-size=68B cardinality=31.53K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: date_dim.d_date_sk
-|  |  runtime filters: RF004 <- date_dim.d_date_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: date_dim.d_year IN (1998, 1999, 2000), (date_dim.d_dom >= 1 AND date_dim.d_dom <= 3 OR date_dim.d_dom >= 25 AND date_dim.d_dom <= 28)
-|     row-size=12B cardinality=354
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  row-size=56B cardinality=162.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: household_demographics.hd_demo_sk
-|  |  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), (CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END) > 1.2
-|     row-size=32B cardinality=416
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
-   row-size=24B cardinality=2.88M
-====
-# TPCDS-Q42
-select
-  dt.d_year,
-  item.i_category_id,
-  item.i_category,
-  sum(ss_ext_sales_price)
-from
-  date_dim dt,
-  store_sales,
-  item
-where
-  dt.d_date_sk = store_sales.ss_sold_date_sk
-  and store_sales.ss_item_sk = item.i_item_sk
-  and item.i_manager_id = 1
-  and dt.d_moy = 12
-  and dt.d_year = 1998
-group by
-  dt.d_year,
-  item.i_category_id,
-  item.i_category
-order by
-  sum(ss_ext_sales_price) desc,
-  dt.d_year,
-  item.i_category_id,
-  item.i_category
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
-Per-Host Resource Estimates: Memory=214MB
-PLAN-ROOT SINK
-|
-06:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
-|  row-size=42B cardinality=100
-|
-05:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_category_id, item.i_category
-|  row-size=42B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  runtime filters: RF000 <- dt.d_date_sk
-|  row-size=62B cardinality=1.73K
-|
-|--00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_year = 1998, dt.d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  runtime filters: RF002 <- item.i_item_sk
-|  row-size=50B cardinality=29.12K
-|
-|--02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manager_id = 1
-|     row-size=34B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=33.81MB Threads=8
-Per-Host Resource Estimates: Memory=234MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
-|  row-size=42B cardinality=100
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_category_id, item.i_category
-|  row-size=42B cardinality=1.73K
-|
-09:EXCHANGE [HASH(dt.d_year,item.i_category_id,item.i_category)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_category_id, item.i_category
-|  row-size=42B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  runtime filters: RF000 <- dt.d_date_sk
-|  row-size=62B cardinality=1.73K
-|
-|--08:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_year = 1998, dt.d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  runtime filters: RF002 <- item.i_item_sk
-|  row-size=50B cardinality=29.12K
-|
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manager_id = 1
-|     row-size=34B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=51.62MB Threads=9
-Per-Host Resource Estimates: Memory=124MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, dt.d_year ASC, item.i_category_id ASC, item.i_category ASC
-|  row-size=42B cardinality=100
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_category_id, item.i_category
-|  row-size=42B cardinality=1.73K
-|
-09:EXCHANGE [HASH(dt.d_year,item.i_category_id,item.i_category)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_category_id, item.i_category
-|  row-size=42B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  row-size=62B cardinality=1.73K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: dt.d_date_sk
-|  |  runtime filters: RF000 <- dt.d_date_sk
-|  |
-|  08:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_year = 1998, dt.d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  row-size=50B cardinality=29.12K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: item.i_item_sk
-|  |  runtime filters: RF002 <- item.i_item_sk
-|  |
-|  07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manager_id = 1
-|     row-size=34B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
-====
-# TPCDS-Q43
-select
-  s_store_name,
-  s_store_id,
-  sum(case when (d_day_name = 'Sunday') then ss_sales_price else null end) sun_sales,
-  sum(case when (d_day_name = 'Monday') then ss_sales_price else null end) mon_sales,
-  sum(case when (d_day_name = 'Tuesday') then ss_sales_price else null end) tue_sales,
-  sum(case when (d_day_name = 'Wednesday') then ss_sales_price else null end) wed_sales,
-  sum(case when (d_day_name = 'Thursday') then ss_sales_price else null end) thu_sales,
-  sum(case when (d_day_name = 'Friday') then ss_sales_price else null end) fri_sales,
-  sum(case when (d_day_name = 'Saturday') then ss_sales_price else null end) sat_sales
-from
-  date_dim,
-  store_sales,
-  store
-where
-  d_date_sk = ss_sold_date_sk
-  and s_store_sk = ss_store_sk
-  and s_gmt_offset = -5
-  and d_year = 1998
-group by
-  s_store_name,
-  s_store_id
-order by
-  s_store_name,
-  s_store_id,
-  sun_sales,
-  mon_sales,
-  tue_sales,
-  wed_sales,
-  thu_sales,
-  fri_sales,
-  sat_sales
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=21.88MB Threads=4
-Per-Host Resource Estimates: Memory=214MB
-PLAN-ROOT SINK
-|
-06:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sal [...]
-|  row-size=156B cardinality=48
-|
-05:AGGREGATE [FINALIZE]
-|  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Sa [...]
-|  group by: s_store_name, s_store_id
-|  row-size=156B cardinality=48
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=91B cardinality=589.03K
-|
-|--02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_gmt_offset = -5
-|     row-size=52B cardinality=12
-|
-03:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=39B cardinality=589.03K
-|
-|--00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=27B cardinality=373
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
-   row-size=12B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=25.82MB Threads=8
-Per-Host Resource Estimates: Memory=234MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sal [...]
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sal [...]
-|  row-size=156B cardinality=48
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL E [...]
-|  group by: s_store_name, s_store_id
-|  row-size=156B cardinality=48
-|
-09:EXCHANGE [HASH(s_store_name,s_store_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Sa [...]
-|  group by: s_store_name, s_store_id
-|  row-size=156B cardinality=48
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=91B cardinality=589.03K
-|
-|--08:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_gmt_offset = -5
-|     row-size=52B cardinality=12
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=39B cardinality=589.03K
-|
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=27B cardinality=373
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
-   row-size=12B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=43.63MB Threads=9
-Per-Host Resource Estimates: Memory=124MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sal [...]
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC, s_store_id ASC, sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END) ASC, sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sal [...]
-|  row-size=156B cardinality=48
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL E [...]
-|  group by: s_store_name, s_store_id
-|  row-size=156B cardinality=48
-|
-09:EXCHANGE [HASH(s_store_name,s_store_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Sa [...]
-|  group by: s_store_name, s_store_id
-|  row-size=156B cardinality=48
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=91B cardinality=589.03K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF000 <- s_store_sk
-|  |
-|  08:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_gmt_offset = -5
-|     row-size=52B cardinality=12
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=39B cardinality=589.03K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF002 <- d_date_sk
-|  |
-|  07:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1998
-|     row-size=27B cardinality=373
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk
-   row-size=12B cardinality=2.88M
-====
-# TPCDS-Q46
-select
-  c_last_name,
-  c_first_name,
-  ca_city,
-  bought_city,
-  ss_ticket_number,
-  amt,
-  profit
-from
-  (select
-    ss_ticket_number,
-    ss_customer_sk,
-    ca_city bought_city,
-    sum(ss_coupon_amt) amt,
-    sum(ss_net_profit) profit
-  from
-    store_sales,
-    date_dim,
-    store,
-    household_demographics,
-    customer_address
-  where
-    store_sales.ss_sold_date_sk = date_dim.d_date_sk
-    and store_sales.ss_store_sk = store.s_store_sk
-    and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-    and store_sales.ss_addr_sk = customer_address.ca_address_sk
-    and (household_demographics.hd_dep_count = 5
-      or household_demographics.hd_vehicle_count = 3)
-    and date_dim.d_dow in (6, 0)
-    and date_dim.d_year in (1999, 1999 + 1, 1999 + 2)
-    and store.s_city in ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
-  group by
-    ss_ticket_number,
-    ss_customer_sk,
-    ss_addr_sk,
-    ca_city
-  ) dn,
-  customer,
-  customer_address current_addr
-where
-  ss_customer_sk = c_customer_sk
-  and customer.c_current_addr_sk = current_addr.ca_address_sk
-  and current_addr.ca_city <> bought_city
-order by
-  c_last_name,
-  c_first_name,
-  ca_city,
-  bought_city,
-  ss_ticket_number
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=67.06MB Threads=8
-Per-Host Resource Estimates: Memory=378MB
-PLAN-ROOT SINK
-|
-14:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
-|  row-size=118B cardinality=100
-|
-13:HASH JOIN [INNER JOIN]
-|  hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
-|  other predicates: current_addr.ca_city != ca_city
-|  runtime filters: RF000 <- current_addr.ca_address_sk
-|  row-size=138B cardinality=230.45K
-|
-|--11:SCAN HDFS [tpcds.customer_address current_addr]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-12:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF002 <- c_customer_sk
-|  row-size=113B cardinality=230.45K
-|
-|--10:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> customer.c_current_addr_sk
-|     row-size=44B cardinality=100.00K
-|
-09:AGGREGATE [FINALIZE]
-|  output: sum(ss_coupon_amt), sum(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=69B cardinality=230.45K
-|
-08:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
-|  runtime filters: RF004 <- customer_address.ca_address_sk
-|  row-size=107B cardinality=230.45K
-|
-|--04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-07:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF006 <- store.s_store_sk
-|  row-size=83B cardinality=230.45K
-|
-|--02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_city IN ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
-|     row-size=23B cardinality=12
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF008 <- date_dim.d_date_sk
-|  row-size=60B cardinality=230.45K
-|
-|--01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: date_dim.d_dow IN (6, 0), date_dim.d_year IN (1999, 2000, 2001)
-|     row-size=12B cardinality=598
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF010 <- household_demographics.hd_demo_sk
-|  row-size=48B cardinality=702.92K
-|
-|--03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
-|     row-size=12B cardinality=1.80K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
-   row-size=36B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=80.20MB Threads=17
-Per-Host Resource Estimates: Memory=412MB
-PLAN-ROOT SINK
-|
-24:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
-|  limit: 100
-|
-14:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
-|  row-size=118B cardinality=100
-|
-13:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
-|  other predicates: current_addr.ca_city != ca_city
-|  runtime filters: RF000 <- current_addr.ca_address_sk
-|  row-size=138B cardinality=230.45K
-|
-|--23:EXCHANGE [BROADCAST]
-|  |
-|  11:SCAN HDFS [tpcds.customer_address current_addr]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-12:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF002 <- c_customer_sk
-|  row-size=113B cardinality=230.45K
-|
-|--22:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  10:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> customer.c_current_addr_sk
-|     row-size=44B cardinality=100.00K
-|
-21:EXCHANGE [HASH(ss_customer_sk)]
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=69B cardinality=230.45K
-|
-19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
-|
-09:AGGREGATE [STREAMING]
-|  output: sum(ss_coupon_amt), sum(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=69B cardinality=230.45K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
-|  runtime filters: RF004 <- customer_address.ca_address_sk
-|  row-size=107B cardinality=230.45K
-|
-|--18:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF006 <- store.s_store_sk
-|  row-size=83B cardinality=230.45K
-|
-|--17:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_city IN ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
-|     row-size=23B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF008 <- date_dim.d_date_sk
-|  row-size=60B cardinality=230.45K
-|
-|--16:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: date_dim.d_dow IN (6, 0), date_dim.d_year IN (1999, 2000, 2001)
-|     row-size=12B cardinality=598
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF010 <- household_demographics.hd_demo_sk
-|  row-size=48B cardinality=702.92K
-|
-|--15:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
-|     row-size=12B cardinality=1.80K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
-   row-size=36B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=107.76MB Threads=20
-Per-Host Resource Estimates: Memory=257MB
-PLAN-ROOT SINK
-|
-24:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
-|  limit: 100
-|
-14:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, c_first_name ASC, ca_city ASC, bought_city ASC, ss_ticket_number ASC
-|  row-size=118B cardinality=100
-|
-13:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
-|  other predicates: current_addr.ca_city != ca_city
-|  row-size=138B cardinality=230.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: current_addr.ca_address_sk
-|  |  runtime filters: RF000 <- current_addr.ca_address_sk
-|  |
-|  23:EXCHANGE [BROADCAST]
-|  |
-|  11:SCAN HDFS [tpcds.customer_address current_addr]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-12:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=113B cardinality=230.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF002 <- c_customer_sk
-|  |
-|  22:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  10:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> customer.c_current_addr_sk
-|     row-size=44B cardinality=100.00K
-|
-21:EXCHANGE [HASH(ss_customer_sk)]
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=69B cardinality=230.45K
-|
-19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
-|
-09:AGGREGATE [STREAMING]
-|  output: sum(ss_coupon_amt), sum(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=69B cardinality=230.45K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
-|  row-size=107B cardinality=230.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: customer_address.ca_address_sk
-|  |  runtime filters: RF004 <- customer_address.ca_address_sk
-|  |
-|  18:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  row-size=83B cardinality=230.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: store.s_store_sk
-|  |  runtime filters: RF006 <- store.s_store_sk
-|  |
-|  17:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_city IN ('Midway', 'Concord', 'Spring Hill', 'Brownsville', 'Greenville')
-|     row-size=23B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  row-size=60B cardinality=230.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: date_dim.d_date_sk
-|  |  runtime filters: RF008 <- date_dim.d_date_sk
-|  |
-|  16:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: date_dim.d_dow IN (6, 0), date_dim.d_year IN (1999, 2000, 2001)
-|     row-size=12B cardinality=598
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  row-size=48B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=05 plan-id=06 cohort-id=01
-|  |  build expressions: household_demographics.hd_demo_sk
-|  |  runtime filters: RF010 <- household_demographics.hd_demo_sk
-|  |
-|  15:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
-|     row-size=12B cardinality=1.80K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
-   row-size=36B cardinality=2.88M
-====
-# TPCDS-Q52
-select
-  dt.d_year,
-  item.i_brand_id brand_id,
-  item.i_brand brand,
-  sum(ss_ext_sales_price) ext_price
-from
-  date_dim dt,
-  store_sales,
-  item
-where
-  dt.d_date_sk = store_sales.ss_sold_date_sk
-  and store_sales.ss_item_sk = item.i_item_sk
-  and item.i_manager_id = 1
-  and dt.d_moy = 12
-  and dt.d_year = 1998
-group by
-  dt.d_year,
-  item.i_brand,
-  item.i_brand_id
-order by
-  dt.d_year,
-  ext_price desc,
-  brand_id
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
-Per-Host Resource Estimates: Memory=214MB
-PLAN-ROOT SINK
-|
-06:TOP-N [LIMIT=100]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  row-size=52B cardinality=100
-|
-05:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  runtime filters: RF000 <- dt.d_date_sk
-|  row-size=72B cardinality=1.73K
-|
-|--00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_year = 1998, dt.d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  runtime filters: RF002 <- item.i_item_sk
-|  row-size=60B cardinality=29.12K
-|
-|--02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manager_id = 1
-|     row-size=44B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=33.81MB Threads=8
-Per-Host Resource Estimates: Memory=234MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  row-size=52B cardinality=100
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=1.73K
-|
-09:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  runtime filters: RF000 <- dt.d_date_sk
-|  row-size=72B cardinality=1.73K
-|
-|--08:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_year = 1998, dt.d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  runtime filters: RF002 <- item.i_item_sk
-|  row-size=60B cardinality=29.12K
-|
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manager_id = 1
-|     row-size=44B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=51.62MB Threads=9
-Per-Host Resource Estimates: Memory=125MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: dt.d_year ASC, sum(ss_ext_sales_price) DESC, item.i_brand_id ASC
-|  row-size=52B cardinality=100
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=1.73K
-|
-09:EXCHANGE [HASH(dt.d_year,item.i_brand,item.i_brand_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: dt.d_year, item.i_brand, item.i_brand_id
-|  row-size=52B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = dt.d_date_sk
-|  row-size=72B cardinality=1.73K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: dt.d_date_sk
-|  |  runtime filters: RF000 <- dt.d_date_sk
-|  |
-|  08:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim dt]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: dt.d_year = 1998, dt.d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_item_sk = item.i_item_sk
-|  row-size=60B cardinality=29.12K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: item.i_item_sk
-|  |  runtime filters: RF002 <- item.i_item_sk
-|  |
-|  07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: item.i_manager_id = 1
-|     row-size=44B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> store_sales.ss_sold_date_sk, RF002 -> store_sales.ss_item_sk
-   row-size=16B cardinality=2.88M
-====
-# TPCDS-Q53
-select
-  *
-from
-  (select
-    i_manufact_id,
-    sum(ss_sales_price) sum_sales
-  from
-    item,
-    store_sales,
-    date_dim,
-    store
-  where
-    ss_item_sk = i_item_sk
-    and ss_sold_date_sk = d_date_sk
-    and ss_store_sk = s_store_sk
-    and d_month_seq in (1212, 1212 + 1, 1212 + 2, 1212 + 3, 1212 + 4, 1212 + 5, 1212 + 6, 1212 + 7, 1212 + 8, 1212 + 9, 1212 + 10, 1212 + 11)
-    and ((i_category in ('Books', 'Children', 'Electronics')
-      and i_class in ('personal', 'portable', 'reference', 'self-help')
-      and i_brand in ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9'))
-    or (i_category in ('Women', 'Music', 'Men')
-      and i_class in ('accessories', 'classical', 'fragrances', 'pants')
-      and i_brand in ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-  group by
-    i_manufact_id,
-    d_qoy
-  ) tmp1
-order by
-  sum_sales,
-  i_manufact_id
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=32.82MB Threads=5
-Per-Host Resource Estimates: Memory=249MB
-PLAN-ROOT SINK
-|
-08:TOP-N [LIMIT=100]
-|  order by: sum_sales ASC, i_manufact_id ASC
-|  row-size=20B cardinality=96
-|
-07:AGGREGATE [FINALIZE]
-|  output: sum(ss_sales_price)
-|  group by: i_manufact_id, d_qoy
-|  row-size=24B cardinality=96
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=114B cardinality=96
-|
-|--03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=110B cardinality=96
-|
-|--02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
-|     row-size=12B cardinality=362
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF004 <- i_item_sk
-|  row-size=98B cardinality=481
-|
-|--00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-|     row-size=78B cardinality=3
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=36.76MB Threads=10
-Per-Host Resource Estimates: Memory=269MB
-PLAN-ROOT SINK
-|
-14:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum_sales ASC, i_manufact_id ASC
-|  limit: 100
-|
-08:TOP-N [LIMIT=100]
-|  order by: sum_sales ASC, i_manufact_id ASC
-|  row-size=20B cardinality=96
-|
-13:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_manufact_id, d_qoy
-|  row-size=24B cardinality=96
-|
-12:EXCHANGE [HASH(i_manufact_id,d_qoy)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_manufact_id, d_qoy
-|  row-size=24B cardinality=96
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=114B cardinality=96
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=110B cardinality=96
-|
-|--10:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
-|     row-size=12B cardinality=362
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF004 <- i_item_sk
-|  row-size=98B cardinality=481
-|
-|--09:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-|     row-size=78B cardinality=3
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=57.51MB Threads=11
-Per-Host Resource Estimates: Memory=146MB
-PLAN-ROOT SINK
-|
-14:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum_sales ASC, i_manufact_id ASC
-|  limit: 100
-|
-08:TOP-N [LIMIT=100]
-|  order by: sum_sales ASC, i_manufact_id ASC
-|  row-size=20B cardinality=96
-|
-13:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_manufact_id, d_qoy
-|  row-size=24B cardinality=96
-|
-12:EXCHANGE [HASH(i_manufact_id,d_qoy)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_manufact_id, d_qoy
-|  row-size=24B cardinality=96
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=114B cardinality=96
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF000 <- s_store_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=110B cardinality=96
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF002 <- d_date_sk
-|  |
-|  10:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
-|     row-size=12B cardinality=362
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=98B cardinality=481
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF004 <- i_item_sk
-|  |
-|  09:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'reference', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-|     row-size=78B cardinality=3
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=2.88M
-====
-# TPCDS-Q55
-select
-  i_brand_id brand_id,
-  i_brand brand,
-  sum(ss_ext_sales_price) ext_price
-from
-  date_dim,
-  store_sales,
-  item
-where
-  d_date_sk = ss_sold_date_sk
-  and ss_item_sk = i_item_sk
-  and i_manager_id = 36
-  and d_moy = 12
-  and d_year = 2001
-group by
-  i_brand,
-  i_brand_id
-order by
-  ext_price desc,
-  i_brand_id
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=29.88MB Threads=4
-Per-Host Resource Estimates: Memory=214MB
-PLAN-ROOT SINK
-|
-06:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
-|  row-size=48B cardinality=100
-|
-05:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id
-|  row-size=48B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF000 <- d_date_sk
-|  row-size=72B cardinality=1.73K
-|
-|--00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 2001, d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=60B cardinality=29.12K
-|
-|--02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_manager_id = 36
-|     row-size=44B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
-   row-size=16B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=33.81MB Threads=8
-Per-Host Resource Estimates: Memory=234MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
-|  row-size=48B cardinality=100
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id
-|  row-size=48B cardinality=1.73K
-|
-09:EXCHANGE [HASH(i_brand,i_brand_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id
-|  row-size=48B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF000 <- d_date_sk
-|  row-size=72B cardinality=1.73K
-|
-|--08:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 2001, d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=60B cardinality=29.12K
-|
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_manager_id = 36
-|     row-size=44B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
-   row-size=16B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=51.62MB Threads=9
-Per-Host Resource Estimates: Memory=124MB
-PLAN-ROOT SINK
-|
-11:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
-|  limit: 100
-|
-06:TOP-N [LIMIT=100]
-|  order by: sum(ss_ext_sales_price) DESC, i_brand_id ASC
-|  row-size=48B cardinality=100
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id
-|  row-size=48B cardinality=1.73K
-|
-09:EXCHANGE [HASH(i_brand,i_brand_id)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_brand, i_brand_id
-|  row-size=48B cardinality=1.73K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=72B cardinality=1.73K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF000 <- d_date_sk
-|  |
-|  08:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 2001, d_moy = 12
-|     row-size=12B cardinality=108
-|
-03:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=60B cardinality=29.12K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF002 <- i_item_sk
-|  |
-|  07:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_manager_id = 36
-|     row-size=44B cardinality=182
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
-   row-size=16B cardinality=2.88M
-====
-# TPCDS-Q59
-with
-  wss as
-  (select
-    d_week_seq,
-    ss_store_sk,
-    sum(case when (d_day_name = 'Sunday') then ss_sales_price else null end) sun_sales,
-    sum(case when (d_day_name = 'Monday') then ss_sales_price else null end) mon_sales,
-    sum(case when (d_day_name = 'Tuesday') then ss_sales_price else null end) tue_sales,
-    sum(case when (d_day_name = 'Wednesday') then ss_sales_price else null end) wed_sales,
-    sum(case when (d_day_name = 'Thursday') then ss_sales_price else null end) thu_sales,
-    sum(case when (d_day_name = 'Friday') then ss_sales_price else null end) fri_sales,
-    sum(case when (d_day_name = 'Saturday') then ss_sales_price else null end) sat_sales
-  from
-    store_sales,
-    date_dim
-  where
-    d_date_sk = ss_sold_date_sk
-  group by
-    d_week_seq,
-    ss_store_sk
-  )
-select
-  s_store_name1,
-  s_store_id1,
-  d_week_seq1,
-  sun_sales1 / sun_sales2,
-  mon_sales1 / mon_sales2,
-  tue_sales1 / tue_sales2,
-  wed_sales1 / wed_sales2,
-  thu_sales1 / thu_sales2,
-  fri_sales1 / fri_sales2,
-  sat_sales1 / sat_sales2
-from
-  (select
-    s_store_name s_store_name1,
-    wss.d_week_seq d_week_seq1,
-    s_store_id s_store_id1,
-    sun_sales sun_sales1,
-    mon_sales mon_sales1,
-    tue_sales tue_sales1,
-    wed_sales wed_sales1,
-    thu_sales thu_sales1,
-    fri_sales fri_sales1,
-    sat_sales sat_sales1
-  from
-    wss,
-    store,
-    date_dim d
-  where
-    d.d_week_seq = wss.d_week_seq
-    and ss_store_sk = s_store_sk
-    and d_month_seq between 1185 and 1185 + 11
-  ) y,
-  (select
-    s_store_name s_store_name2,
-    wss.d_week_seq d_week_seq2,
-    s_store_id s_store_id2,
-    sun_sales sun_sales2,
-    mon_sales mon_sales2,
-    tue_sales tue_sales2,
-    wed_sales wed_sales2,
-    thu_sales thu_sales2,
-    fri_sales fri_sales2,
-    sat_sales sat_sales2
-  from
-    wss,
-    store,
-    date_dim d
-  where
-    d.d_week_seq = wss.d_week_seq
-    and ss_store_sk = s_store_sk
-    and d_month_seq between 1185 + 12 and 1185 + 23
-  ) x
-where
-  s_store_id1 = s_store_id2
-  and d_week_seq1 = d_week_seq2 - 52
-order by
-  s_store_name1,
-  s_store_id1,
-  d_week_seq1
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=70.52MB Threads=9
-Per-Host Resource Estimates: Memory=534MB
-PLAN-ROOT SINK
-|
-17:TOP-N [LIMIT=100]
-|  order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
-|  row-size=272B cardinality=100
-|
-16:HASH JOIN [INNER JOIN]
-|  hash predicates: d_week_seq = d_week_seq - 52, s_store_id = s_store_id
-|  runtime filters: RF000 <- d_week_seq - 52, RF001 <- s_store_id
-|  row-size=336B cardinality=419.05M
-|
-|--15:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  runtime filters: RF010 <- s_store_sk
-|  |  row-size=160B cardinality=50.14K
-|  |
-|  |--12:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=32B cardinality=12
-|  |
-|  14:HASH JOIN [INNER JOIN]
-|  |  hash predicates: d_week_seq = d.d_week_seq
-|  |  runtime filters: RF012 <- d.d_week_seq
-|  |  row-size=128B cardinality=50.14K
-|  |
-|  |--13:SCAN HDFS [tpcds.date_dim d]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_month_seq <= 1208, d_month_seq >= 1197
-|  |     row-size=8B cardinality=7.30K
-|  |
-|  11:AGGREGATE [FINALIZE]
-|  |  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name =  [...]
-|  |  group by: d_week_seq, ss_store_sk
-|  |  row-size=120B cardinality=63.85K
-|  |
-|  10:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF014 <- d_date_sk
-|  |  row-size=39B cardinality=2.88M
-|  |
-|  |--09:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     runtime filters: RF012 -> tpcds.date_dim.d_week_seq
-|  |     row-size=27B cardinality=73.05K
-|  |
-|  08:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF010 -> tpcds.store_sales.ss_store_sk, RF014 -> ss_sold_date_sk
-|     row-size=12B cardinality=2.88M
-|
-07:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF004 <- s_store_sk
-|  row-size=176B cardinality=50.14K
-|
-|--04:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF001 -> s_store_id
-|     row-size=48B cardinality=12
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: d_week_seq = d.d_week_seq
-|  runtime filters: RF006 <- d.d_week_seq
-|  row-size=128B cardinality=50.14K
-|
-|--05:SCAN HDFS [tpcds.date_dim d]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq <= 1196, d_month_seq >= 1185
-|     runtime filters: RF000 -> d.d_week_seq
-|     row-size=8B cardinality=7.30K
-|
-03:AGGREGATE [FINALIZE]
-|  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Sa [...]
-|  group by: d_week_seq, ss_store_sk
-|  row-size=120B cardinality=63.85K
-|
-02:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF008 <- d_date_sk
-|  row-size=39B cardinality=2.88M
-|
-|--01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     runtime filters: RF000 -> tpcds.date_dim.d_week_seq, RF006 -> tpcds.date_dim.d_week_seq
-|     row-size=27B cardinality=73.05K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> tpcds.store_sales.ss_store_sk, RF008 -> ss_sold_date_sk
-   row-size=12B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=103.14MB Threads=20
-Per-Host Resource Estimates: Memory=601MB
-PLAN-ROOT SINK
-|
-30:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
-|  limit: 100
-|
-17:TOP-N [LIMIT=100]
-|  order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
-|  row-size=272B cardinality=100
-|
-16:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: d_week_seq = d_week_seq - 52, s_store_id = s_store_id
-|  runtime filters: RF000 <- d_week_seq - 52, RF001 <- s_store_id
-|  row-size=336B cardinality=419.05M
-|
-|--29:EXCHANGE [HASH(d_week_seq - 52,s_store_id)]
-|  |
-|  15:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  runtime filters: RF010 <- s_store_sk
-|  |  row-size=160B cardinality=50.14K
-|  |
-|  |--27:EXCHANGE [BROADCAST]
-|  |  |
-|  |  12:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=32B cardinality=12
-|  |
-|  14:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: d_week_seq = d.d_week_seq
-|  |  runtime filters: RF012 <- d.d_week_seq
-|  |  row-size=128B cardinality=50.14K
-|  |
-|  |--26:EXCHANGE [BROADCAST]
-|  |  |
-|  |  13:SCAN HDFS [tpcds.date_dim d]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_month_seq <= 1208, d_month_seq >= 1197
-|  |     row-size=8B cardinality=7.30K
-|  |
-|  25:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NUL [...]
-|  |  group by: d_week_seq, ss_store_sk
-|  |  row-size=120B cardinality=63.85K
-|  |
-|  24:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
-|  |
-|  11:AGGREGATE [STREAMING]
-|  |  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name =  [...]
-|  |  group by: d_week_seq, ss_store_sk
-|  |  row-size=120B cardinality=63.85K
-|  |
-|  10:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF014 <- d_date_sk
-|  |  row-size=39B cardinality=2.88M
-|  |
-|  |--23:EXCHANGE [BROADCAST]
-|  |  |
-|  |  09:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     runtime filters: RF012 -> tpcds.date_dim.d_week_seq
-|  |     row-size=27B cardinality=73.05K
-|  |
-|  08:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF010 -> tpcds.store_sales.ss_store_sk, RF014 -> ss_sold_date_sk
-|     row-size=12B cardinality=2.88M
-|
-28:EXCHANGE [HASH(d_week_seq,s_store_id)]
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF004 <- s_store_sk
-|  row-size=176B cardinality=50.14K
-|
-|--22:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF001 -> s_store_id
-|     row-size=48B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: d_week_seq = d.d_week_seq
-|  runtime filters: RF006 <- d.d_week_seq
-|  row-size=128B cardinality=50.14K
-|
-|--21:EXCHANGE [BROADCAST]
-|  |
-|  05:SCAN HDFS [tpcds.date_dim d]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq <= 1196, d_month_seq >= 1185
-|     runtime filters: RF000 -> d.d_week_seq
-|     row-size=8B cardinality=7.30K
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL E [...]
-|  group by: d_week_seq, ss_store_sk
-|  row-size=120B cardinality=63.85K
-|
-19:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
-|
-03:AGGREGATE [STREAMING]
-|  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Sa [...]
-|  group by: d_week_seq, ss_store_sk
-|  row-size=120B cardinality=63.85K
-|
-02:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF008 <- d_date_sk
-|  row-size=39B cardinality=2.88M
-|
-|--18:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     runtime filters: RF000 -> tpcds.date_dim.d_week_seq, RF006 -> tpcds.date_dim.d_week_seq
-|     row-size=27B cardinality=73.05K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> tpcds.store_sales.ss_store_sk, RF008 -> ss_sold_date_sk
-   row-size=12B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=159.52MB Threads=25
-Per-Host Resource Estimates: Memory=356MB
-PLAN-ROOT SINK
-|
-30:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
-|  limit: 100
-|
-17:TOP-N [LIMIT=100]
-|  order by: s_store_name1 ASC, s_store_id1 ASC, d_week_seq1 ASC
-|  row-size=272B cardinality=100
-|
-16:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: d_week_seq = d_week_seq - 52, s_store_id = s_store_id
-|  row-size=336B cardinality=419.05M
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: d_week_seq - 52, s_store_id
-|  |  runtime filters: RF000 <- d_week_seq - 52, RF001 <- s_store_id
-|  |
-|  29:EXCHANGE [HASH(d_week_seq - 52,s_store_id)]
-|  |
-|  15:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=160B cardinality=50.14K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=01 plan-id=02 cohort-id=02
-|  |  |  build expressions: s_store_sk
-|  |  |  runtime filters: RF010 <- s_store_sk
-|  |  |
-|  |  27:EXCHANGE [BROADCAST]
-|  |  |
-|  |  12:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=32B cardinality=12
-|  |
-|  14:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: d_week_seq = d.d_week_seq
-|  |  row-size=128B cardinality=50.14K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=02 plan-id=03 cohort-id=02
-|  |  |  build expressions: d.d_week_seq
-|  |  |  runtime filters: RF012 <- d.d_week_seq
-|  |  |
-|  |  26:EXCHANGE [BROADCAST]
-|  |  |
-|  |  13:SCAN HDFS [tpcds.date_dim d]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_month_seq <= 1208, d_month_seq >= 1197
-|  |     row-size=8B cardinality=7.30K
-|  |
-|  25:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NUL [...]
-|  |  group by: d_week_seq, ss_store_sk
-|  |  row-size=120B cardinality=63.85K
-|  |
-|  24:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
-|  |
-|  11:AGGREGATE [STREAMING]
-|  |  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name =  [...]
-|  |  group by: d_week_seq, ss_store_sk
-|  |  row-size=120B cardinality=63.85K
-|  |
-|  10:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  row-size=39B cardinality=2.88M
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=03 plan-id=04 cohort-id=02
-|  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF014 <- d_date_sk
-|  |  |
-|  |  23:EXCHANGE [BROADCAST]
-|  |  |
-|  |  09:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     runtime filters: RF012 -> tpcds.date_dim.d_week_seq
-|  |     row-size=27B cardinality=73.05K
-|  |
-|  08:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF010 -> tpcds.store_sales.ss_store_sk, RF014 -> ss_sold_date_sk
-|     row-size=12B cardinality=2.88M
-|
-28:EXCHANGE [HASH(d_week_seq,s_store_id)]
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=176B cardinality=50.14K
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF004 <- s_store_sk
-|  |
-|  22:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF001 -> s_store_id
-|     row-size=48B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: d_week_seq = d.d_week_seq
-|  row-size=128B cardinality=50.14K
-|
-|--JOIN BUILD
-|  |  join-table-id=05 plan-id=06 cohort-id=01
-|  |  build expressions: d.d_week_seq
-|  |  runtime filters: RF006 <- d.d_week_seq
-|  |
-|  21:EXCHANGE [BROADCAST]
-|  |
-|  05:SCAN HDFS [tpcds.date_dim d]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq <= 1196, d_month_seq >= 1185
-|     runtime filters: RF000 -> d.d_week_seq
-|     row-size=8B cardinality=7.30K
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum:merge(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum:merge(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL E [...]
-|  group by: d_week_seq, ss_store_sk
-|  row-size=120B cardinality=63.85K
-|
-19:EXCHANGE [HASH(d_week_seq,ss_store_sk)]
-|
-03:AGGREGATE [STREAMING]
-|  output: sum(CASE WHEN (d_day_name = 'Sunday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Monday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Tuesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Wednesday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Thursday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Friday') THEN ss_sales_price ELSE NULL END), sum(CASE WHEN (d_day_name = 'Sa [...]
-|  group by: d_week_seq, ss_store_sk
-|  row-size=120B cardinality=63.85K
-|
-02:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=39B cardinality=2.88M
-|
-|--JOIN BUILD
-|  |  join-table-id=06 plan-id=07 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF008 <- d_date_sk
-|  |
-|  18:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     runtime filters: RF000 -> tpcds.date_dim.d_week_seq, RF006 -> tpcds.date_dim.d_week_seq
-|     row-size=27B cardinality=73.05K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> tpcds.store_sales.ss_store_sk, RF008 -> ss_sold_date_sk
-   row-size=12B cardinality=2.88M
-====
-# TPCDS-Q63
-select
-  *
-from
-  (select
-    i_manager_id,
-    sum(ss_sales_price) sum_sales,
-    avg(sum(ss_sales_price)) over (partition by i_manager_id) avg_monthly_sales
-  from
-    item,
-    store_sales,
-    date_dim,
-    store
-  where
-    ss_item_sk = i_item_sk
-    and ss_sold_date_sk = d_date_sk
-    and ss_store_sk = s_store_sk
-    and d_month_seq in (1212, 1212 + 1, 1212 + 2, 1212 + 3, 1212 + 4, 1212 + 5, 1212 + 6, 1212 + 7, 1212 + 8, 1212 + 9, 1212 + 10, 1212 + 11)
-    and ((i_category in ('Books', 'Children', 'Electronics')
-      and i_class in ('personal', 'portable', 'refernece', 'self-help')
-      and i_brand in ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9'))
-    or (i_category in ('Women', 'Music', 'Men')
-      and i_class in ('accessories', 'classical', 'fragrances', 'pants')
-      and i_brand in ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-    and ss_sold_date_sk between 2451911 and 2452275  -- partition key filter
-  group by
-    i_manager_id,
-    d_moy
-  ) tmp1
-where
-case when avg_monthly_sales > 0 then abs (sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1
-order by
-  i_manager_id,
-  avg_monthly_sales,
-  sum_sales
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=29.32MB Threads=5
-Per-Host Resource Estimates: Memory=253MB
-PLAN-ROOT SINK
-|
-11:TOP-N [LIMIT=100]
-|  order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
-|  row-size=36B cardinality=1
-|
-10:SELECT
-|  predicates: CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
-|  row-size=40B cardinality=1
-|
-09:ANALYTIC
-|  functions: avg(sum(ss_sales_price))
-|  partition by: i_manager_id
-|  row-size=40B cardinality=6
-|
-08:SORT
-|  order by: i_manager_id ASC NULLS LAST
-|  row-size=24B cardinality=6
-|
-07:AGGREGATE [FINALIZE]
-|  output: sum(ss_sales_price)
-|  group by: i_manager_id, d_moy
-|  row-size=24B cardinality=6
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=114B cardinality=6
-|
-|--03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=110B cardinality=6
-|
-|--02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: tpcds.date_dim.d_date_sk <= 2452275, tpcds.date_dim.d_date_sk >= 2451911, d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
-|     row-size=12B cardinality=114
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF004 <- i_item_sk
-|  row-size=98B cardinality=92
-|
-|--00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'refernece', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-|     row-size=78B cardinality=3
-|
-01:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2452275
-   HDFS partitions=364/1824 files=364 size=66.85MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=546.31K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=39.26MB Threads=10
-Per-Host Resource Estimates: Memory=279MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
-|  limit: 100
-|
-11:TOP-N [LIMIT=100]
-|  order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
-|  row-size=36B cardinality=1
-|
-10:SELECT
-|  predicates: CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
-|  row-size=40B cardinality=1
-|
-09:ANALYTIC
-|  functions: avg(sum(ss_sales_price))
-|  partition by: i_manager_id
-|  row-size=40B cardinality=6
-|
-08:SORT
-|  order by: i_manager_id ASC NULLS LAST
-|  row-size=24B cardinality=6
-|
-16:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_manager_id, d_moy
-|  row-size=24B cardinality=6
-|
-15:EXCHANGE [HASH(i_manager_id)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_manager_id, d_moy
-|  row-size=24B cardinality=6
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=114B cardinality=6
-|
-|--14:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=110B cardinality=6
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: tpcds.date_dim.d_date_sk <= 2452275, tpcds.date_dim.d_date_sk >= 2451911, d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
-|     row-size=12B cardinality=114
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF004 <- i_item_sk
-|  row-size=98B cardinality=92
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'refernece', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-|     row-size=78B cardinality=3
-|
-01:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2452275
-   HDFS partitions=364/1824 files=364 size=66.85MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=546.31K
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=62.51MB Threads=11
-Per-Host Resource Estimates: Memory=166MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
-|  limit: 100
-|
-11:TOP-N [LIMIT=100]
-|  order by: i_manager_id ASC, avg_monthly_sales ASC, sum_sales ASC
-|  row-size=36B cardinality=1
-|
-10:SELECT
-|  predicates: CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
-|  row-size=40B cardinality=1
-|
-09:ANALYTIC
-|  functions: avg(sum(ss_sales_price))
-|  partition by: i_manager_id
-|  row-size=40B cardinality=6
-|
-08:SORT
-|  order by: i_manager_id ASC NULLS LAST
-|  row-size=24B cardinality=6
-|
-16:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_manager_id, d_moy
-|  row-size=24B cardinality=6
-|
-15:EXCHANGE [HASH(i_manager_id)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_manager_id, d_moy
-|  row-size=24B cardinality=6
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=114B cardinality=6
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF000 <- s_store_sk
-|  |
-|  14:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=4B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=110B cardinality=6
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF002 <- d_date_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: tpcds.date_dim.d_date_sk <= 2452275, tpcds.date_dim.d_date_sk >= 2451911, d_month_seq IN (1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223)
-|     row-size=12B cardinality=114
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=98B cardinality=92
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF004 <- i_item_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Books', 'Children', 'Electronics') AND i_class IN ('personal', 'portable', 'refernece', 'self-help') AND i_brand IN ('scholaramalgamalg #14', 'scholaramalgamalg #7', 'exportiunivamalg #9', 'scholaramalgamalg #9')) OR (i_category IN ('Women', 'Music', 'Men') AND i_class IN ('accessories', 'classical', 'fragrances', 'pants') AND i_brand IN ('amalgimporto #1', 'edu packscholar #1', 'exportiimporto #1', 'importoamalg #1')))
-|     row-size=78B cardinality=3
-|
-01:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2452275
-   HDFS partitions=364/1824 files=364 size=66.85MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=546.31K
-====
-# TPCDS-Q65
-select
-  s_store_name,
-  i_item_desc,
-  sc.revenue,
-  i_current_price,
-  i_wholesale_cost,
-  i_brand
-from
-  store,
-  item,
-  (select
-    ss_store_sk,
-    avg(revenue) as ave
-  from
-    (select
-      ss_store_sk,
-      ss_item_sk,
-      sum(ss_sales_price) as revenue
-    from
-      store_sales,
-      date_dim
-    where
-      ss_sold_date_sk = d_date_sk
-      and d_month_seq between 1212 and 1212 + 11
-    group by
-      ss_store_sk,
-      ss_item_sk
-    ) sa
-  group by
-    ss_store_sk
-  ) sb,
-  (select
-    ss_store_sk,
-    ss_item_sk,
-    sum(ss_sales_price) as revenue
-  from
-    store_sales,
-    date_dim
-  where
-    ss_sold_date_sk = d_date_sk
-    and d_month_seq between 1212 and 1212 + 11
-  group by
-    ss_store_sk,
-    ss_item_sk
-  ) sc
-where
-  sb.ss_store_sk = sc.ss_store_sk
-  and sc.revenue <= 0.1 * sb.ave
-  and s_store_sk = sc.ss_store_sk
-  and i_item_sk = sc.ss_item_sk
-order by
-  s_store_name,
-  i_item_desc
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=55.57MB Threads=7
-Per-Host Resource Estimates: Memory=432MB
-PLAN-ROOT SINK
-|
-14:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC, i_item_desc ASC
-|  row-size=181B cardinality=100
-|
-13:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = ss_store_sk
-|  other predicates: sum(ss_sales_price) <= 0.1 * avg(revenue)
-|  runtime filters: RF000 <- ss_store_sk
-|  row-size=225B cardinality=647.10K
-|
-|--06:AGGREGATE [FINALIZE]
-|  |  output: avg(sum(ss_sales_price))
-|  |  group by: ss_store_sk
-|  |  row-size=20B cardinality=6
-|  |
-|  05:AGGREGATE [FINALIZE]
-|  |  output: sum(ss_sales_price)
-|  |  group by: ss_store_sk, ss_item_sk
-|  |  row-size=28B cardinality=107.85K
-|  |
-|  04:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF008 <- d_date_sk
-|  |  row-size=28B cardinality=2.88M
-|  |
-|  |--03:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_month_seq <= 1223, d_month_seq >= 1212
-|  |     row-size=8B cardinality=7.30K
-|  |
-|  02:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF008 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-12:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=205B cardinality=107.85K
-|
-|--01:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=157B cardinality=18.00K
-|
-11:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF004 <- s_store_sk
-|  row-size=48B cardinality=107.85K
-|
-|--00:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF000 -> tpcds.store.s_store_sk
-|     row-size=20B cardinality=12
-|
-10:AGGREGATE [FINALIZE]
-|  output: sum(ss_sales_price)
-|  group by: ss_store_sk, ss_item_sk
-|  row-size=28B cardinality=107.85K
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=28B cardinality=2.88M
-|
-|--08:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq <= 1223, d_month_seq >= 1212
-|     row-size=8B cardinality=7.30K
-|
-07:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_item_sk, RF004 -> tpcds.store_sales.ss_store_sk, RF006 -> ss_sold_date_sk
-   row-size=20B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=76.51MB Threads=17
-Per-Host Resource Estimates: Memory=502MB
-PLAN-ROOT SINK
-|
-27:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name ASC, i_item_desc ASC
-|  limit: 100
-|
-14:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC, i_item_desc ASC
-|  row-size=181B cardinality=100
-|
-13:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = ss_store_sk
-|  other predicates: sum(ss_sales_price) <= 0.1 * avg(revenue)
-|  runtime filters: RF000 <- ss_store_sk
-|  row-size=225B cardinality=647.10K
-|
-|--26:EXCHANGE [BROADCAST]
-|  |
-|  25:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(revenue)
-|  |  group by: ss_store_sk
-|  |  row-size=20B cardinality=6
-|  |
-|  24:EXCHANGE [HASH(ss_store_sk)]
-|  |
-|  06:AGGREGATE [STREAMING]
-|  |  output: avg(sum(ss_sales_price))
-|  |  group by: ss_store_sk
-|  |  row-size=20B cardinality=6
-|  |
-|  23:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_sales_price)
-|  |  group by: ss_store_sk, ss_item_sk
-|  |  row-size=28B cardinality=107.85K
-|  |
-|  22:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
-|  |
-|  05:AGGREGATE [STREAMING]
-|  |  output: sum(ss_sales_price)
-|  |  group by: ss_store_sk, ss_item_sk
-|  |  row-size=28B cardinality=107.85K
-|  |
-|  04:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF008 <- d_date_sk
-|  |  row-size=28B cardinality=2.88M
-|  |
-|  |--21:EXCHANGE [BROADCAST]
-|  |  |
-|  |  03:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_month_seq <= 1223, d_month_seq >= 1212
-|  |     row-size=8B cardinality=7.30K
-|  |
-|  02:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF008 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-12:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=205B cardinality=107.85K
-|
-|--20:EXCHANGE [HASH(i_item_sk)]
-|  |
-|  01:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=157B cardinality=18.00K
-|
-19:EXCHANGE [HASH(ss_item_sk)]
-|
-11:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF004 <- s_store_sk
-|  row-size=48B cardinality=107.85K
-|
-|--18:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF000 -> tpcds.store.s_store_sk
-|     row-size=20B cardinality=12
-|
-17:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: ss_store_sk, ss_item_sk
-|  row-size=28B cardinality=107.85K
-|
-16:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
-|
-10:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: ss_store_sk, ss_item_sk
-|  row-size=28B cardinality=107.85K
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF006 <- d_date_sk
-|  row-size=28B cardinality=2.88M
-|
-|--15:EXCHANGE [BROADCAST]
-|  |
-|  08:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq <= 1223, d_month_seq >= 1212
-|     row-size=8B cardinality=7.30K
-|
-07:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_item_sk, RF004 -> tpcds.store_sales.ss_store_sk, RF006 -> ss_sold_date_sk
-   row-size=20B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=123.01MB Threads=23
-Per-Host Resource Estimates: Memory=310MB
-PLAN-ROOT SINK
-|
-27:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: s_store_name ASC, i_item_desc ASC
-|  limit: 100
-|
-14:TOP-N [LIMIT=100]
-|  order by: s_store_name ASC, i_item_desc ASC
-|  row-size=181B cardinality=100
-|
-13:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = ss_store_sk
-|  other predicates: sum(ss_sales_price) <= 0.1 * avg(revenue)
-|  row-size=225B cardinality=647.10K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: ss_store_sk
-|  |  runtime filters: RF000 <- ss_store_sk
-|  |
-|  26:EXCHANGE [BROADCAST]
-|  |
-|  25:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(revenue)
-|  |  group by: ss_store_sk
-|  |  row-size=20B cardinality=6
-|  |
-|  24:EXCHANGE [HASH(ss_store_sk)]
-|  |
-|  06:AGGREGATE [STREAMING]
-|  |  output: avg(sum(ss_sales_price))
-|  |  group by: ss_store_sk
-|  |  row-size=20B cardinality=6
-|  |
-|  23:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_sales_price)
-|  |  group by: ss_store_sk, ss_item_sk
-|  |  row-size=28B cardinality=107.85K
-|  |
-|  22:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
-|  |
-|  05:AGGREGATE [STREAMING]
-|  |  output: sum(ss_sales_price)
-|  |  group by: ss_store_sk, ss_item_sk
-|  |  row-size=28B cardinality=107.85K
-|  |
-|  04:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  row-size=28B cardinality=2.88M
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=01 plan-id=02 cohort-id=02
-|  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF008 <- d_date_sk
-|  |  |
-|  |  21:EXCHANGE [BROADCAST]
-|  |  |
-|  |  03:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_month_seq <= 1223, d_month_seq >= 1212
-|  |     row-size=8B cardinality=7.30K
-|  |
-|  02:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF008 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-12:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=205B cardinality=107.85K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF002 <- i_item_sk
-|  |
-|  20:EXCHANGE [HASH(i_item_sk)]
-|  |
-|  01:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=157B cardinality=18.00K
-|
-19:EXCHANGE [HASH(ss_item_sk)]
-|
-11:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=48B cardinality=107.85K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF004 <- s_store_sk
-|  |
-|  18:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     runtime filters: RF000 -> tpcds.store.s_store_sk
-|     row-size=20B cardinality=12
-|
-17:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: ss_store_sk, ss_item_sk
-|  row-size=28B cardinality=107.85K
-|
-16:EXCHANGE [HASH(ss_store_sk,ss_item_sk)]
-|
-10:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: ss_store_sk, ss_item_sk
-|  row-size=28B cardinality=107.85K
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=28B cardinality=2.88M
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF006 <- d_date_sk
-|  |
-|  15:EXCHANGE [BROADCAST]
-|  |
-|  08:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_month_seq <= 1223, d_month_seq >= 1212
-|     row-size=8B cardinality=7.30K
-|
-07:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_store_sk, RF002 -> tpcds.store_sales.ss_item_sk, RF004 -> tpcds.store_sales.ss_store_sk, RF006 -> ss_sold_date_sk
-   row-size=20B cardinality=2.88M
-====
-# TPCDS-Q68
-select
-  c_last_name,
-  c_first_name,
-  ca_city,
-  bought_city,
-  ss_ticket_number,
-  extended_price,
-  extended_tax,
-  list_price
-from
-  (select
-    ss_ticket_number,
-    ss_customer_sk,
-    ca_city bought_city,
-    sum(ss_ext_sales_price) extended_price,
-    sum(ss_ext_list_price) list_price,
-    sum(ss_ext_tax) extended_tax
-  from
-    store_sales,
-    date_dim,
-    store,
-    household_demographics,
-    customer_address
-  where
-    store_sales.ss_sold_date_sk = date_dim.d_date_sk
-    and store_sales.ss_store_sk = store.s_store_sk
-    and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-    and store_sales.ss_addr_sk = customer_address.ca_address_sk
-    and (household_demographics.hd_dep_count = 5
-      or household_demographics.hd_vehicle_count = 3)
-    and store.s_city in ('Midway', 'Fairview')
-    and d_date between '1999-01-01' and '1999-03-31'
-  group by
-    ss_ticket_number,
-    ss_customer_sk,
-    ss_addr_sk,
-    ca_city
-  ) dn,
-  customer,
-  customer_address current_addr
-where
-  ss_customer_sk = c_customer_sk
-  and customer.c_current_addr_sk = current_addr.ca_address_sk
-  and current_addr.ca_city <> bought_city
-order by
-  c_last_name,
-  ss_ticket_number
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=84.06MB Threads=8
-Per-Host Resource Estimates: Memory=378MB
-PLAN-ROOT SINK
-|
-14:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, ss_ticket_number ASC
-|  row-size=134B cardinality=100
-|
-13:HASH JOIN [INNER JOIN]
-|  hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
-|  other predicates: current_addr.ca_city != ca_city
-|  runtime filters: RF000 <- current_addr.ca_address_sk
-|  row-size=154B cardinality=702.92K
-|
-|--11:SCAN HDFS [tpcds.customer_address current_addr]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-12:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF002 <- c_customer_sk
-|  row-size=129B cardinality=702.92K
-|
-|--10:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> customer.c_current_addr_sk
-|     row-size=44B cardinality=100.00K
-|
-09:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price), sum(ss_ext_list_price), sum(ss_ext_tax)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=85B cardinality=702.92K
-|
-08:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
-|  runtime filters: RF004 <- customer_address.ca_address_sk
-|  row-size=125B cardinality=702.92K
-|
-|--04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-07:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF006 <- store.s_store_sk
-|  row-size=101B cardinality=702.92K
-|
-|--02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_city IN ('Midway', 'Fairview')
-|     row-size=23B cardinality=12
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF008 <- date_dim.d_date_sk
-|  row-size=78B cardinality=702.92K
-|
-|--01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
-|     row-size=26B cardinality=7.30K
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF010 <- household_demographics.hd_demo_sk
-|  row-size=52B cardinality=702.92K
-|
-|--03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
-|     row-size=12B cardinality=1.80K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
-   row-size=40B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=136.32MB Threads=16
-Per-Host Resource Estimates: Memory=465MB
-PLAN-ROOT SINK
-|
-23:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, ss_ticket_number ASC
-|  limit: 100
-|
-14:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, ss_ticket_number ASC
-|  row-size=134B cardinality=100
-|
-13:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
-|  other predicates: current_addr.ca_city != ca_city
-|  runtime filters: RF000 <- current_addr.ca_address_sk
-|  row-size=154B cardinality=702.92K
-|
-|--22:EXCHANGE [BROADCAST]
-|  |
-|  11:SCAN HDFS [tpcds.customer_address current_addr]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-12:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF002 <- c_customer_sk
-|  row-size=129B cardinality=702.92K
-|
-|--21:EXCHANGE [BROADCAST]
-|  |
-|  10:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> customer.c_current_addr_sk
-|     row-size=44B cardinality=100.00K
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price), sum:merge(ss_ext_list_price), sum:merge(ss_ext_tax)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=85B cardinality=702.92K
-|
-19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
-|
-09:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price), sum(ss_ext_list_price), sum(ss_ext_tax)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=85B cardinality=702.92K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
-|  runtime filters: RF004 <- customer_address.ca_address_sk
-|  row-size=125B cardinality=702.92K
-|
-|--18:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF006 <- store.s_store_sk
-|  row-size=101B cardinality=702.92K
-|
-|--17:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_city IN ('Midway', 'Fairview')
-|     row-size=23B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF008 <- date_dim.d_date_sk
-|  row-size=78B cardinality=702.92K
-|
-|--16:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
-|     row-size=26B cardinality=7.30K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF010 <- household_demographics.hd_demo_sk
-|  row-size=52B cardinality=702.92K
-|
-|--15:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
-|     row-size=12B cardinality=1.80K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
-   row-size=40B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=168.38MB Threads=17
-Per-Host Resource Estimates: Memory=292MB
-PLAN-ROOT SINK
-|
-23:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, ss_ticket_number ASC
-|  limit: 100
-|
-14:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, ss_ticket_number ASC
-|  row-size=134B cardinality=100
-|
-13:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: customer.c_current_addr_sk = current_addr.ca_address_sk
-|  other predicates: current_addr.ca_city != ca_city
-|  row-size=154B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: current_addr.ca_address_sk
-|  |  runtime filters: RF000 <- current_addr.ca_address_sk
-|  |
-|  22:EXCHANGE [BROADCAST]
-|  |
-|  11:SCAN HDFS [tpcds.customer_address current_addr]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-12:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=129B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF002 <- c_customer_sk
-|  |
-|  21:EXCHANGE [BROADCAST]
-|  |
-|  10:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> customer.c_current_addr_sk
-|     row-size=44B cardinality=100.00K
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price), sum:merge(ss_ext_list_price), sum:merge(ss_ext_tax)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=85B cardinality=702.92K
-|
-19:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city)]
-|
-09:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price), sum(ss_ext_list_price), sum(ss_ext_tax)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, ca_city
-|  row-size=85B cardinality=702.92K
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_addr_sk = customer_address.ca_address_sk
-|  row-size=125B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: customer_address.ca_address_sk
-|  |  runtime filters: RF004 <- customer_address.ca_address_sk
-|  |
-|  18:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=25B cardinality=50.00K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  row-size=101B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: store.s_store_sk
-|  |  runtime filters: RF006 <- store.s_store_sk
-|  |
-|  17:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_city IN ('Midway', 'Fairview')
-|     row-size=23B cardinality=12
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  row-size=78B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: date_dim.d_date_sk
-|  |  runtime filters: RF008 <- date_dim.d_date_sk
-|  |
-|  16:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
-|     row-size=26B cardinality=7.30K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  row-size=52B cardinality=702.92K
-|
-|--JOIN BUILD
-|  |  join-table-id=05 plan-id=06 cohort-id=01
-|  |  build expressions: household_demographics.hd_demo_sk
-|  |  runtime filters: RF010 <- household_demographics.hd_demo_sk
-|  |
-|  15:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 5 OR household_demographics.hd_vehicle_count = 3)
-|     row-size=12B cardinality=1.80K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF002 -> tpcds.store_sales.ss_customer_sk, RF004 -> store_sales.ss_addr_sk, RF006 -> store_sales.ss_store_sk, RF008 -> store_sales.ss_sold_date_sk, RF010 -> store_sales.ss_hdemo_sk
-   row-size=40B cardinality=2.88M
-====
-# TPCDS-Q73
-select
-  c_last_name,
-  c_first_name,
-  c_salutation,
-  c_preferred_cust_flag,
-  ss_ticket_number,
-  cnt
-from
-  (select
-    ss_ticket_number,
-    ss_customer_sk,
-    count(*) cnt
-  from
-    store_sales,
-    date_dim,
-    store,
-    household_demographics
-  where
-    store_sales.ss_sold_date_sk = date_dim.d_date_sk
-    and store_sales.ss_store_sk = store.s_store_sk
-    and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-    and (household_demographics.hd_buy_potential = '>10000'
-      or household_demographics.hd_buy_potential = 'unknown')
-    and household_demographics.hd_vehicle_count > 0
-    and case when household_demographics.hd_vehicle_count > 0 then household_demographics.hd_dep_count / household_demographics.hd_vehicle_count else null end > 1
-    and store.s_county in ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
-  group by
-    ss_ticket_number,
-    ss_customer_sk
-  ) dj,
-  customer
-where
-  ss_customer_sk = c_customer_sk
-  and cnt between 1 and 5
-order by
-  cnt desc
-limit 1000
----- PLAN
-Max Per-Host Resource Reservation: Memory=34.07MB Threads=6
-Per-Host Resource Estimates: Memory=298MB
-PLAN-ROOT SINK
-|
-10:TOP-N [LIMIT=1000]
-|  order by: cnt DESC
-|  row-size=80B cardinality=1.00K
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: c_customer_sk = ss_customer_sk
-|  runtime filters: RF000 <- ss_customer_sk
-|  row-size=88B cardinality=16.25K
-|
-|--07:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  group by: ss_ticket_number, ss_customer_sk
-|  |  having: count(*) <= 5, count(*) >= 1
-|  |  row-size=20B cardinality=16.25K
-|  |
-|  06:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  |  runtime filters: RF002 <- store.s_store_sk
-|  |  row-size=93B cardinality=162.45K
-|  |
-|  |--02:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
-|  |     row-size=33B cardinality=12
-|  |
-|  05:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  |  runtime filters: RF004 <- date_dim.d_date_sk
-|  |  row-size=60B cardinality=162.45K
-|  |
-|  |--01:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     row-size=4B cardinality=73.05K
-|  |
-|  04:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  |  row-size=56B cardinality=162.45K
-|  |
-|  |--03:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END > 1
-|  |     row-size=32B cardinality=416
-|  |
-|  00:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
-|     row-size=24B cardinality=2.88M
-|
-08:SCAN HDFS [tpcds.customer]
-   HDFS partitions=1/1 files=1 size=12.60MB
-   runtime filters: RF000 -> c_customer_sk
-   row-size=68B cardinality=100.00K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=49.45MB Threads=13
-Per-Host Resource Estimates: Memory=336MB
-PLAN-ROOT SINK
-|
-18:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: cnt DESC
-|  limit: 1000
-|
-10:TOP-N [LIMIT=1000]
-|  order by: cnt DESC
-|  row-size=80B cardinality=1.00K
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF000 <- c_customer_sk
-|  row-size=88B cardinality=16.25K
-|
-|--17:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  08:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     row-size=68B cardinality=100.00K
-|
-16:EXCHANGE [HASH(ss_customer_sk)]
-|
-15:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  having: count(*) <= 5, count(*) >= 1
-|  row-size=20B cardinality=16.25K
-|
-14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
-|
-07:AGGREGATE [STREAMING]
-|  output: count(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  row-size=20B cardinality=162.45K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF002 <- store.s_store_sk
-|  row-size=93B cardinality=162.45K
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
-|     row-size=33B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF004 <- date_dim.d_date_sk
-|  row-size=60B cardinality=162.45K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     row-size=4B cardinality=73.05K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  row-size=56B cardinality=162.45K
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END > 1
-|     row-size=32B cardinality=416
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
-   row-size=24B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=68.26MB Threads=14
-Per-Host Resource Estimates: Memory=190MB
-PLAN-ROOT SINK
-|
-18:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: cnt DESC
-|  limit: 1000
-|
-10:TOP-N [LIMIT=1000]
-|  order by: cnt DESC
-|  row-size=80B cardinality=1.00K
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=88B cardinality=16.25K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF000 <- c_customer_sk
-|  |
-|  17:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  08:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     row-size=68B cardinality=100.00K
-|
-16:EXCHANGE [HASH(ss_customer_sk)]
-|
-15:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  having: count(*) <= 5, count(*) >= 1
-|  row-size=20B cardinality=16.25K
-|
-14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk)]
-|
-07:AGGREGATE [STREAMING]
-|  output: count(*)
-|  group by: ss_ticket_number, ss_customer_sk
-|  row-size=20B cardinality=162.45K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  row-size=93B cardinality=162.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: store.s_store_sk
-|  |  runtime filters: RF002 <- store.s_store_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_county IN ('Saginaw County', 'Sumner County', 'Appanoose County', 'Daviess County')
-|     row-size=33B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  row-size=60B cardinality=162.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: date_dim.d_date_sk
-|  |  runtime filters: RF004 <- date_dim.d_date_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     row-size=4B cardinality=73.05K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  row-size=56B cardinality=162.45K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: household_demographics.hd_demo_sk
-|  |  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: household_demographics.hd_vehicle_count > 0, household_demographics.hd_buy_potential IN ('>10000', 'unknown'), CASE WHEN household_demographics.hd_vehicle_count > 0 THEN household_demographics.hd_dep_count / household_demographics.hd_vehicle_count ELSE NULL END > 1
-|     row-size=32B cardinality=416
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_store_sk, RF004 -> store_sales.ss_sold_date_sk, RF006 -> store_sales.ss_hdemo_sk
-   row-size=24B cardinality=2.88M
-====
-# TPCDS-Q79
-select
-  c_last_name,
-  c_first_name,
-  substr(s_city, 1, 30),
-  ss_ticket_number,
-  amt,
-  profit
-from
-  (select
-    ss_ticket_number,
-    ss_customer_sk,
-    store.s_city,
-    sum(ss_coupon_amt) amt,
-    sum(ss_net_profit) profit
-  from
-    store_sales,
-    date_dim,
-    store,
-    household_demographics
-  where
-    store_sales.ss_sold_date_sk = date_dim.d_date_sk
-    and store_sales.ss_store_sk = store.s_store_sk
-    and store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-    and (household_demographics.hd_dep_count = 8
-      or household_demographics.hd_vehicle_count > 0)
-    and store.s_number_employees between 200 and 295
-    and d_date between '1999-01-01' and '1999-03-31'
-  group by
-    ss_ticket_number,
-    ss_customer_sk,
-    ss_addr_sk,
-    store.s_city
-  ) ms,
-  customer
-where
-  ss_customer_sk = c_customer_sk
-order by
-  c_last_name,
-  c_first_name,
-  substr(s_city, 1, 30),
-  profit
-limit 100
----- PLAN
-Max Per-Host Resource Reservation: Memory=34.07MB Threads=6
-Per-Host Resource Estimates: Memory=298MB
-PLAN-ROOT SINK
-|
-10:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
-|  row-size=88B cardinality=100
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: c_customer_sk = ss_customer_sk
-|  runtime filters: RF000 <- ss_customer_sk
-|  row-size=106B cardinality=46.86K
-|
-|--07:AGGREGATE [FINALIZE]
-|  |  output: sum(ss_coupon_amt), sum(ss_net_profit)
-|  |  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
-|  |  row-size=67B cardinality=46.86K
-|  |
-|  06:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  |  runtime filters: RF002 <- date_dim.d_date_sk
-|  |  row-size=101B cardinality=46.86K
-|  |
-|  |--01:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
-|  |     row-size=26B cardinality=7.30K
-|  |
-|  05:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  |  runtime filters: RF004 <- store.s_store_sk
-|  |  row-size=75B cardinality=46.86K
-|  |
-|  |--02:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_number_employees <= 295, store.s_number_employees >= 200
-|  |     row-size=27B cardinality=1
-|  |
-|  04:HASH JOIN [INNER JOIN]
-|  |  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  |  row-size=48B cardinality=281.17K
-|  |
-|  |--03:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: (household_demographics.hd_dep_count = 8 OR household_demographics.hd_vehicle_count > 0)
-|  |     row-size=12B cardinality=720
-|  |
-|  00:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF002 -> store_sales.ss_sold_date_sk, RF004 -> store_sales.ss_store_sk, RF006 -> store_sales.ss_hdemo_sk
-|     row-size=36B cardinality=2.88M
-|
-08:SCAN HDFS [tpcds.customer]
-   HDFS partitions=1/1 files=1 size=12.60MB
-   runtime filters: RF000 -> c_customer_sk
-   row-size=40B cardinality=100.00K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=45.70MB Threads=13
-Per-Host Resource Estimates: Memory=330MB
-PLAN-ROOT SINK
-|
-18:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
-|  limit: 100
-|
-10:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
-|  row-size=88B cardinality=100
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF000 <- c_customer_sk
-|  row-size=106B cardinality=46.86K
-|
-|--17:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  08:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     row-size=40B cardinality=100.00K
-|
-16:EXCHANGE [HASH(ss_customer_sk)]
-|
-15:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
-|  row-size=67B cardinality=46.86K
-|
-14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_coupon_amt), sum(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
-|  row-size=67B cardinality=46.86K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  runtime filters: RF002 <- date_dim.d_date_sk
-|  row-size=101B cardinality=46.86K
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
-|     row-size=26B cardinality=7.30K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  runtime filters: RF004 <- store.s_store_sk
-|  row-size=75B cardinality=46.86K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_number_employees <= 295, store.s_number_employees >= 200
-|     row-size=27B cardinality=1
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  row-size=48B cardinality=281.17K
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 8 OR household_demographics.hd_vehicle_count > 0)
-|     row-size=12B cardinality=720
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_sold_date_sk, RF004 -> store_sales.ss_store_sk, RF006 -> store_sales.ss_hdemo_sk
-   row-size=36B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=64.51MB Threads=14
-Per-Host Resource Estimates: Memory=185MB
-PLAN-ROOT SINK
-|
-18:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
-|  limit: 100
-|
-10:TOP-N [LIMIT=100]
-|  order by: c_last_name ASC, c_first_name ASC, substr(s_city, 1, 30) ASC, profit ASC
-|  row-size=88B cardinality=100
-|
-09:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=106B cardinality=46.86K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF000 <- c_customer_sk
-|  |
-|  17:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  08:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     row-size=40B cardinality=100.00K
-|
-16:EXCHANGE [HASH(ss_customer_sk)]
-|
-15:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_coupon_amt), sum:merge(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
-|  row-size=67B cardinality=46.86K
-|
-14:EXCHANGE [HASH(ss_ticket_number,ss_customer_sk,ss_addr_sk,store.s_city)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_coupon_amt), sum(ss_net_profit)
-|  group by: ss_ticket_number, ss_customer_sk, ss_addr_sk, store.s_city
-|  row-size=67B cardinality=46.86K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_sold_date_sk = date_dim.d_date_sk
-|  row-size=101B cardinality=46.86K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: date_dim.d_date_sk
-|  |  runtime filters: RF002 <- date_dim.d_date_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_date <= '1999-03-31', d_date >= '1999-01-01'
-|     row-size=26B cardinality=7.30K
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_store_sk = store.s_store_sk
-|  row-size=75B cardinality=46.86K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: store.s_store_sk
-|  |  runtime filters: RF004 <- store.s_store_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_number_employees <= 295, store.s_number_employees >= 200
-|     row-size=27B cardinality=1
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
-|  row-size=48B cardinality=281.17K
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: household_demographics.hd_demo_sk
-|  |  runtime filters: RF006 <- household_demographics.hd_demo_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: (household_demographics.hd_dep_count = 8 OR household_demographics.hd_vehicle_count > 0)
-|     row-size=12B cardinality=720
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> tpcds.store_sales.ss_customer_sk, RF002 -> store_sales.ss_sold_date_sk, RF004 -> store_sales.ss_store_sk, RF006 -> store_sales.ss_hdemo_sk
-   row-size=36B cardinality=2.88M
-====
-# TPCDS-Q89
-select * from (select  *
-from (
-select i_category, i_class, i_brand,
-       s_store_name, s_company_name,
-       d_moy,
-       sum(ss_sales_price) sum_sales,
-       avg(sum(ss_sales_price)) over
-         (partition by i_category, i_brand, s_store_name, s_company_name)
-         avg_monthly_sales
-from item, store_sales, date_dim, store
-where ss_item_sk = i_item_sk and
-      ss_sold_date_sk = d_date_sk and
-      ss_store_sk = s_store_sk and
-      d_year in (2000) and
-        ((i_category in ('Children','Music','Home') and
-          i_class in ('toddlers','pop','lighting')
-         )
-      or (i_category in ('Jewelry','Books','Sports') and
-          i_class in ('costume','travel','football')
-        ))
-group by i_category, i_class, i_brand,
-         s_store_name, s_company_name, d_moy) tmp1
-where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1
-order by sum_sales - avg_monthly_sales, s_store_name
-limit 100) tmp2
----- PLAN
-Max Per-Host Resource Reservation: Memory=36.82MB Threads=5
-Per-Host Resource Estimates: Memory=253MB
-PLAN-ROOT SINK
-|
-11:TOP-N [LIMIT=100]
-|  order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
-|  row-size=137B cardinality=100
-|
-10:SELECT
-|  predicates: CASE WHEN (avg(sum(ss_sales_price)) != 0) THEN (abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price))) ELSE NULL END > 0.1
-|  row-size=137B cardinality=1.07K
-|
-09:ANALYTIC
-|  functions: avg(sum(ss_sales_price))
-|  partition by: i_category, i_brand, s_store_name, s_company_name
-|  row-size=137B cardinality=10.67K
-|
-08:SORT
-|  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST
-|  row-size=121B cardinality=10.67K
-|
-07:AGGREGATE [FINALIZE]
-|  output: sum(ss_sales_price)
-|  group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
-|  row-size=121B cardinality=10.67K
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=145B cardinality=10.67K
-|
-|--03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=39B cardinality=12
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=106B cardinality=10.67K
-|
-|--02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year IN (2000)
-|     row-size=12B cardinality=373
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF004 <- i_item_sk
-|  row-size=94B cardinality=52.17K
-|
-|--00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Children', 'Music', 'Home') AND i_class IN ('toddlers', 'pop', 'lighting')) OR (i_category IN ('Jewelry', 'Books', 'Sports') AND i_class IN ('costume', 'travel', 'football')))
-|     row-size=74B cardinality=326
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=52.76MB Threads=10
-Per-Host Resource Estimates: Memory=285MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
-|  limit: 100
-|
-11:TOP-N [LIMIT=100]
-|  order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
-|  row-size=137B cardinality=100
-|
-10:SELECT
-|  predicates: CASE WHEN (avg(sum(ss_sales_price)) != 0) THEN (abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price))) ELSE NULL END > 0.1
-|  row-size=137B cardinality=1.07K
-|
-09:ANALYTIC
-|  functions: avg(sum(ss_sales_price))
-|  partition by: i_category, i_brand, s_store_name, s_company_name
-|  row-size=137B cardinality=10.67K
-|
-08:SORT
-|  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST
-|  row-size=121B cardinality=10.67K
-|
-16:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
-|  row-size=121B cardinality=10.67K
-|
-15:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
-|  row-size=121B cardinality=10.67K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=145B cardinality=10.67K
-|
-|--14:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=39B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF002 <- d_date_sk
-|  row-size=106B cardinality=10.67K
-|
-|--13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year IN (2000)
-|     row-size=12B cardinality=373
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF004 <- i_item_sk
-|  row-size=94B cardinality=52.17K
-|
-|--12:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Children', 'Music', 'Home') AND i_class IN ('toddlers', 'pop', 'lighting')) OR (i_category IN ('Jewelry', 'Books', 'Sports') AND i_class IN ('costume', 'travel', 'football')))
-|     row-size=74B cardinality=326
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=89.51MB Threads=11
-Per-Host Resource Estimates: Memory=178MB
-PLAN-ROOT SINK
-|
-17:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
-|  limit: 100
-|
-11:TOP-N [LIMIT=100]
-|  order by: sum_sales - avg_monthly_sales ASC, s_store_name ASC
-|  row-size=137B cardinality=100
-|
-10:SELECT
-|  predicates: CASE WHEN (avg(sum(ss_sales_price)) != 0) THEN (abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price))) ELSE NULL END > 0.1
-|  row-size=137B cardinality=1.07K
-|
-09:ANALYTIC
-|  functions: avg(sum(ss_sales_price))
-|  partition by: i_category, i_brand, s_store_name, s_company_name
-|  row-size=137B cardinality=10.67K
-|
-08:SORT
-|  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST
-|  row-size=121B cardinality=10.67K
-|
-16:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
-|  row-size=121B cardinality=10.67K
-|
-15:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|
-07:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_category, i_class, i_brand, s_store_name, s_company_name, d_moy
-|  row-size=121B cardinality=10.67K
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=145B cardinality=10.67K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF000 <- s_store_sk
-|  |
-|  14:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=39B cardinality=12
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=106B cardinality=10.67K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF002 <- d_date_sk
-|  |
-|  13:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year IN (2000)
-|     row-size=12B cardinality=373
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=94B cardinality=52.17K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF004 <- i_item_sk
-|  |
-|  12:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: ((i_category IN ('Children', 'Music', 'Home') AND i_class IN ('toddlers', 'pop', 'lighting')) OR (i_category IN ('Jewelry', 'Books', 'Sports') AND i_class IN ('costume', 'travel', 'football')))
-|     row-size=74B cardinality=326
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_sold_date_sk, RF004 -> ss_item_sk
-   row-size=20B cardinality=2.88M
-====
-# TPCDS-Q96
-SELECT
-  COUNT(*) AS total
-FROM store_sales ss
-JOIN time_dim td
-  ON (ss.ss_sold_time_sk = td.t_time_sk)
-JOIN household_demographics hd
-  ON (ss.ss_hdemo_sk = hd.hd_demo_sk)
-JOIN store s
-  ON (ss.ss_store_sk = s.s_store_sk)
-WHERE
-  td.t_hour = 8
-  AND td.t_minute >= 30
-  AND hd.hd_dep_count = 5
-  AND s.s_store_name = 'ese'
----- PLAN
-Max Per-Host Resource Reservation: Memory=25.07MB Threads=5
-Per-Host Resource Estimates: Memory=233MB
-PLAN-ROOT SINK
-|
-07:AGGREGATE [FINALIZE]
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss.ss_store_sk = s.s_store_sk
-|  runtime filters: RF000 <- s.s_store_sk
-|  row-size=52B cardinality=2.27K
-|
-|--03:SCAN HDFS [tpcds.store s]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s.s_store_name = 'ese'
-|     row-size=20B cardinality=2
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss.ss_hdemo_sk = hd.hd_demo_sk
-|  runtime filters: RF002 <- hd.hd_demo_sk
-|  row-size=32B cardinality=6.82K
-|
-|--02:SCAN HDFS [tpcds.household_demographics hd]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: hd.hd_dep_count = 5
-|     row-size=8B cardinality=720
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss.ss_sold_time_sk = td.t_time_sk
-|  runtime filters: RF004 <- td.t_time_sk
-|  row-size=24B cardinality=69.82K
-|
-|--01:SCAN HDFS [tpcds.time_dim td]
-|     HDFS partitions=1/1 files=1 size=4.87MB
-|     predicates: td.t_hour = 8, td.t_minute >= 30
-|     row-size=12B cardinality=1.14K
-|
-00:SCAN HDFS [tpcds.store_sales ss]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss.ss_store_sk, RF002 -> ss.ss_hdemo_sk, RF004 -> ss.ss_sold_time_sk
-   row-size=12B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=25.07MB Threads=9
-Per-Host Resource Estimates: Memory=253MB
-PLAN-ROOT SINK
-|
-12:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=1
-|
-11:EXCHANGE [UNPARTITIONED]
-|
-07:AGGREGATE
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss.ss_store_sk = s.s_store_sk
-|  runtime filters: RF000 <- s.s_store_sk
-|  row-size=52B cardinality=2.27K
-|
-|--10:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store s]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s.s_store_name = 'ese'
-|     row-size=20B cardinality=2
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss.ss_hdemo_sk = hd.hd_demo_sk
-|  runtime filters: RF002 <- hd.hd_demo_sk
-|  row-size=32B cardinality=6.82K
-|
-|--09:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.household_demographics hd]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: hd.hd_dep_count = 5
-|     row-size=8B cardinality=720
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss.ss_sold_time_sk = td.t_time_sk
-|  runtime filters: RF004 <- td.t_time_sk
-|  row-size=24B cardinality=69.82K
-|
-|--08:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.time_dim td]
-|     HDFS partitions=1/1 files=1 size=4.87MB
-|     predicates: td.t_hour = 8, td.t_minute >= 30
-|     row-size=12B cardinality=1.14K
-|
-00:SCAN HDFS [tpcds.store_sales ss]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss.ss_store_sk, RF002 -> ss.ss_hdemo_sk, RF004 -> ss.ss_sold_time_sk
-   row-size=12B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=41.88MB Threads=9
-Per-Host Resource Estimates: Memory=128MB
-PLAN-ROOT SINK
-|
-12:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=1
-|
-11:EXCHANGE [UNPARTITIONED]
-|
-07:AGGREGATE
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss.ss_store_sk = s.s_store_sk
-|  row-size=52B cardinality=2.27K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: s.s_store_sk
-|  |  runtime filters: RF000 <- s.s_store_sk
-|  |
-|  10:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store s]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s.s_store_name = 'ese'
-|     row-size=20B cardinality=2
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss.ss_hdemo_sk = hd.hd_demo_sk
-|  row-size=32B cardinality=6.82K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: hd.hd_demo_sk
-|  |  runtime filters: RF002 <- hd.hd_demo_sk
-|  |
-|  09:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.household_demographics hd]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: hd.hd_dep_count = 5
-|     row-size=8B cardinality=720
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss.ss_sold_time_sk = td.t_time_sk
-|  row-size=24B cardinality=69.82K
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: td.t_time_sk
-|  |  runtime filters: RF004 <- td.t_time_sk
-|  |
-|  08:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.time_dim td]
-|     HDFS partitions=1/1 files=1 size=4.87MB
-|     predicates: td.t_hour = 8, td.t_minute >= 30
-|     row-size=12B cardinality=1.14K
-|
-00:SCAN HDFS [tpcds.store_sales ss]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss.ss_store_sk, RF002 -> ss.ss_hdemo_sk, RF004 -> ss.ss_sold_time_sk
-   row-size=12B cardinality=2.88M
-====
-# TPCDS-Q98
-select
-  i_item_desc,
-  i_category,
-  i_class,
-  i_current_price,
-  sum(ss_ext_sales_price) as itemrevenue,
-  sum(ss_ext_sales_price)*100/sum(sum(ss_ext_sales_price)) over (partition by i_class) as revenueratio
-from
-  store_sales,
-  item,
-  date_dim
-where
-  ss_item_sk = i_item_sk
-  and i_category in ('Jewelry', 'Sports', 'Books')
-  and ss_sold_date_sk = d_date_sk
-  and ss_sold_date_sk between 2451911 and 2451941
-  and d_date between '2001-01-01' and '2001-01-31' -- original uses interval and the
-group by
-  i_item_id,
-  i_item_desc,
-  i_category,
-  i_class,
-  i_current_price
-order by
-  i_category,
-  i_class,
-  i_item_id,
-  i_item_desc,
-  revenueratio
-limit 1000
----- PLAN
-Max Per-Host Resource Reservation: Memory=26.50MB Threads=4
-Per-Host Resource Estimates: Memory=218MB
-PLAN-ROOT SINK
-|
-08:TOP-N [LIMIT=1000]
-|  order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
-|  row-size=214B cardinality=1.00K
-|
-07:ANALYTIC
-|  functions: sum(sum(ss_ext_sales_price))
-|  partition by: i_class
-|  row-size=214B cardinality=29.80K
-|
-06:SORT
-|  order by: i_class ASC NULLS LAST
-|  row-size=198B cardinality=29.80K
-|
-05:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
-|  row-size=198B cardinality=29.80K
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF000 <- d_date_sk
-|  row-size=232B cardinality=29.80K
-|
-|--02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: tpcds.date_dim.d_date_sk <= 2451941, tpcds.date_dim.d_date_sk >= 2451911, d_date <= '2001-01-31', d_date >= '2001-01-01'
-|     row-size=26B cardinality=7.30K
-|
-03:HASH JOIN [INNER JOIN]
-|  hash predicates: i_item_sk = ss_item_sk
-|  runtime filters: RF002 <- ss_item_sk
-|  row-size=206B cardinality=29.80K
-|
-|--00:SCAN HDFS [tpcds.store_sales]
-|     partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2451941
-|     HDFS partitions=31/1824 files=31 size=3.64MB
-|     runtime filters: RF000 -> ss_sold_date_sk
-|     row-size=16B cardinality=29.76K
-|
-01:SCAN HDFS [tpcds.item]
-   HDFS partitions=1/1 files=1 size=4.82MB
-   predicates: i_category IN ('Jewelry', 'Sports', 'Books')
-   runtime filters: RF002 -> i_item_sk
-   row-size=190B cardinality=5.40K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=57.88MB Threads=9
-Per-Host Resource Estimates: Memory=254MB
-PLAN-ROOT SINK
-|
-14:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
-|  limit: 1000
-|
-08:TOP-N [LIMIT=1000]
-|  order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
-|  row-size=214B cardinality=1.00K
-|
-07:ANALYTIC
-|  functions: sum(sum(ss_ext_sales_price))
-|  partition by: i_class
-|  row-size=214B cardinality=29.80K
-|
-06:SORT
-|  order by: i_class ASC NULLS LAST
-|  row-size=198B cardinality=29.80K
-|
-13:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
-|  row-size=198B cardinality=29.80K
-|
-12:EXCHANGE [HASH(i_class)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
-|  row-size=198B cardinality=29.80K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF000 <- d_date_sk
-|  row-size=232B cardinality=29.80K
-|
-|--11:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: tpcds.date_dim.d_date_sk <= 2451941, tpcds.date_dim.d_date_sk >= 2451911, d_date <= '2001-01-31', d_date >= '2001-01-01'
-|     row-size=26B cardinality=7.30K
-|
-03:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=206B cardinality=29.80K
-|
-|--10:EXCHANGE [HASH(i_item_sk)]
-|  |
-|  01:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_category IN ('Jewelry', 'Sports', 'Books')
-|     row-size=190B cardinality=5.40K
-|
-09:EXCHANGE [HASH(ss_item_sk)]
-|
-00:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2451941
-   HDFS partitions=31/1824 files=31 size=3.64MB
-   runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
-   row-size=16B cardinality=29.76K
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=60.31MB Threads=9
-Per-Host Resource Estimates: Memory=120MB
-PLAN-ROOT SINK
-|
-14:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
-|  limit: 1000
-|
-08:TOP-N [LIMIT=1000]
-|  order by: i_category ASC, i_class ASC, i_item_id ASC, i_item_desc ASC, sum(ss_ext_sales_price) * 100 / sum(sum(ss_ext_sales_price)) ASC
-|  row-size=214B cardinality=1.00K
-|
-07:ANALYTIC
-|  functions: sum(sum(ss_ext_sales_price))
-|  partition by: i_class
-|  row-size=214B cardinality=29.80K
-|
-06:SORT
-|  order by: i_class ASC NULLS LAST
-|  row-size=198B cardinality=29.80K
-|
-13:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
-|  row-size=198B cardinality=29.80K
-|
-12:EXCHANGE [HASH(i_class)]
-|
-05:AGGREGATE [STREAMING]
-|  output: sum(ss_ext_sales_price)
-|  group by: i_item_id, i_item_desc, i_category, i_class, i_current_price
-|  row-size=198B cardinality=29.80K
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=232B cardinality=29.80K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF000 <- d_date_sk
-|  |
-|  11:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: tpcds.date_dim.d_date_sk <= 2451941, tpcds.date_dim.d_date_sk >= 2451911, d_date <= '2001-01-31', d_date >= '2001-01-01'
-|     row-size=26B cardinality=7.30K
-|
-03:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=206B cardinality=29.80K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF002 <- i_item_sk
-|  |
-|  10:EXCHANGE [HASH(i_item_sk)]
-|  |
-|  01:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_category IN ('Jewelry', 'Sports', 'Books')
-|     row-size=190B cardinality=5.40K
-|
-09:EXCHANGE [HASH(ss_item_sk)]
-|
-00:SCAN HDFS [tpcds.store_sales]
-   partition predicates: ss_sold_date_sk >= 2451911, ss_sold_date_sk <= 2451941
-   HDFS partitions=31/1824 files=31 size=3.64MB
-   runtime filters: RF000 -> ss_sold_date_sk, RF002 -> ss_item_sk
-   row-size=16B cardinality=29.76K
-====
-# TPCD-Q6
-select * from (
- select  a.ca_state state, count(*) cnt
- from customer_address a
-     ,customer c
-     ,store_sales s
-     ,date_dim d
-     ,item i
- where
-        a.ca_address_sk = c.c_current_addr_sk
-        and c.c_customer_sk = s.ss_customer_sk
-        and s.ss_sold_date_sk = d.d_date_sk
-        and s.ss_item_sk = i.i_item_sk
-        and d.d_month_seq =
-             (select distinct (d_month_seq)
-              from date_dim
-               where d_year = 1999
-                and d_moy = 1
-               limit 1)
-        and i.i_current_price > 1.2 *
-             (select avg(j.i_current_price)
-             from item j
-             where j.i_category = i.i_category)
- group by a.ca_state
- having count(*) >= 10
- order by cnt limit 100) as t
----- PLAN
-Max Per-Host Resource Reservation: Memory=73.62MB Threads=8
-Per-Host Resource Estimates: Memory=402MB
-PLAN-ROOT SINK
-|
-16:TOP-N [LIMIT=100]
-|  order by: count(*) ASC
-|  row-size=22B cardinality=5
-|
-15:AGGREGATE [FINALIZE]
-|  output: count(*)
-|  group by: a.ca_state
-|  having: count(*) >= 10
-|  row-size=22B cardinality=5
-|
-14:HASH JOIN [LEFT SEMI JOIN]
-|  hash predicates: i.i_category = j.i_category
-|  other join predicates: i.i_current_price > 1.2 * avg(j.i_current_price)
-|  runtime filters: RF000 <- j.i_category
-|  row-size=80B cardinality=1.19K
-|
-|--08:AGGREGATE [FINALIZE]
-|  |  output: avg(j.i_current_price)
-|  |  group by: j.i_category
-|  |  row-size=26B cardinality=10
-|  |
-|  07:SCAN HDFS [tpcds.item j]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=22B cardinality=18.00K
-|
-13:HASH JOIN [LEFT SEMI JOIN]
-|  hash predicates: d.d_month_seq = (d_month_seq)
-|  runtime filters: RF002 <- (d_month_seq)
-|  row-size=80B cardinality=1.19K
-|
-|--06:AGGREGATE [FINALIZE]
-|  |  group by: (d_month_seq)
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  05:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1999, d_moy = 1
-|     row-size=12B cardinality=108
-|
-12:HASH JOIN [INNER JOIN]
-|  hash predicates: s.ss_item_sk = i.i_item_sk
-|  runtime filters: RF004 <- i.i_item_sk
-|  row-size=80B cardinality=2.88M
-|
-|--04:SCAN HDFS [tpcds.item i]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     runtime filters: RF000 -> i.i_category
-|     row-size=30B cardinality=18.00K
-|
-11:HASH JOIN [INNER JOIN]
-|  hash predicates: s.ss_sold_date_sk = d.d_date_sk
-|  runtime filters: RF006 <- d.d_date_sk
-|  row-size=50B cardinality=2.88M
-|
-|--03:SCAN HDFS [tpcds.date_dim d]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     runtime filters: RF002 -> d.d_month_seq
-|     row-size=8B cardinality=73.05K
-|
-10:HASH JOIN [INNER JOIN]
-|  hash predicates: c.c_current_addr_sk = a.ca_address_sk
-|  runtime filters: RF008 <- a.ca_address_sk
-|  row-size=42B cardinality=2.88M
-|
-|--00:SCAN HDFS [tpcds.customer_address a]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=18B cardinality=50.00K
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: s.ss_customer_sk = c.c_customer_sk
-|  runtime filters: RF010 <- c.c_customer_sk
-|  row-size=24B cardinality=2.88M
-|
-|--01:SCAN HDFS [tpcds.customer c]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF008 -> c.c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-02:SCAN HDFS [tpcds.store_sales s]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> s.ss_item_sk, RF006 -> s.ss_sold_date_sk, RF010 -> s.ss_customer_sk
-   row-size=16B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=88.44MB Threads=19
-Per-Host Resource Estimates: Memory=452MB
-PLAN-ROOT SINK
-|
-30:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: count(*) ASC
-|  limit: 100
-|
-16:TOP-N [LIMIT=100]
-|  order by: count(*) ASC
-|  row-size=22B cardinality=5
-|
-29:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  group by: a.ca_state
-|  having: count(*) >= 10
-|  row-size=22B cardinality=5
-|
-28:EXCHANGE [HASH(a.ca_state)]
-|
-15:AGGREGATE [STREAMING]
-|  output: count(*)
-|  group by: a.ca_state
-|  row-size=22B cardinality=51
-|
-14:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
-|  hash predicates: i.i_category = j.i_category
-|  other join predicates: i.i_current_price > 1.2 * avg(j.i_current_price)
-|  runtime filters: RF000 <- j.i_category
-|  row-size=80B cardinality=1.19K
-|
-|--27:EXCHANGE [BROADCAST]
-|  |
-|  26:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(j.i_current_price)
-|  |  group by: j.i_category
-|  |  row-size=26B cardinality=10
-|  |
-|  25:EXCHANGE [HASH(j.i_category)]
-|  |
-|  08:AGGREGATE [STREAMING]
-|  |  output: avg(j.i_current_price)
-|  |  group by: j.i_category
-|  |  row-size=26B cardinality=10
-|  |
-|  07:SCAN HDFS [tpcds.item j]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=22B cardinality=18.00K
-|
-13:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
-|  hash predicates: d.d_month_seq = (d_month_seq)
-|  runtime filters: RF002 <- (d_month_seq)
-|  row-size=80B cardinality=1.19K
-|
-|--24:EXCHANGE [BROADCAST]
-|  |
-|  23:EXCHANGE [UNPARTITIONED]
-|  |  limit: 1
-|  |
-|  22:AGGREGATE [FINALIZE]
-|  |  group by: (d_month_seq)
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  21:EXCHANGE [HASH((d_month_seq))]
-|  |
-|  06:AGGREGATE [STREAMING]
-|  |  group by: (d_month_seq)
-|  |  row-size=4B cardinality=108
-|  |
-|  05:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1999, d_moy = 1
-|     row-size=12B cardinality=108
-|
-12:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: s.ss_item_sk = i.i_item_sk
-|  runtime filters: RF004 <- i.i_item_sk
-|  row-size=80B cardinality=2.88M
-|
-|--20:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.item i]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     runtime filters: RF000 -> i.i_category
-|     row-size=30B cardinality=18.00K
-|
-11:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: s.ss_sold_date_sk = d.d_date_sk
-|  runtime filters: RF006 <- d.d_date_sk
-|  row-size=50B cardinality=2.88M
-|
-|--19:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.date_dim d]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     runtime filters: RF002 -> d.d_month_seq
-|     row-size=8B cardinality=73.05K
-|
-10:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: c.c_current_addr_sk = a.ca_address_sk
-|  runtime filters: RF008 <- a.ca_address_sk
-|  row-size=42B cardinality=2.88M
-|
-|--18:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.customer_address a]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=18B cardinality=50.00K
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: s.ss_customer_sk = c.c_customer_sk
-|  runtime filters: RF010 <- c.c_customer_sk
-|  row-size=24B cardinality=2.88M
-|
-|--17:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.customer c]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF008 -> c.c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-02:SCAN HDFS [tpcds.store_sales s]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> s.ss_item_sk, RF006 -> s.ss_sold_date_sk, RF010 -> s.ss_customer_sk
-   row-size=16B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=115.00MB Threads=20
-Per-Host Resource Estimates: Memory=270MB
-PLAN-ROOT SINK
-|
-30:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: count(*) ASC
-|  limit: 100
-|
-16:TOP-N [LIMIT=100]
-|  order by: count(*) ASC
-|  row-size=22B cardinality=5
-|
-29:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  group by: a.ca_state
-|  having: count(*) >= 10
-|  row-size=22B cardinality=5
-|
-28:EXCHANGE [HASH(a.ca_state)]
-|
-15:AGGREGATE [STREAMING]
-|  output: count(*)
-|  group by: a.ca_state
-|  row-size=22B cardinality=51
-|
-14:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
-|  hash predicates: i.i_category = j.i_category
-|  other join predicates: i.i_current_price > 1.2 * avg(j.i_current_price)
-|  row-size=80B cardinality=1.19K
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: j.i_category
-|  |  runtime filters: RF000 <- j.i_category
-|  |
-|  27:EXCHANGE [BROADCAST]
-|  |
-|  26:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(j.i_current_price)
-|  |  group by: j.i_category
-|  |  row-size=26B cardinality=10
-|  |
-|  25:EXCHANGE [HASH(j.i_category)]
-|  |
-|  08:AGGREGATE [STREAMING]
-|  |  output: avg(j.i_current_price)
-|  |  group by: j.i_category
-|  |  row-size=26B cardinality=10
-|  |
-|  07:SCAN HDFS [tpcds.item j]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=22B cardinality=18.00K
-|
-13:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
-|  hash predicates: d.d_month_seq = (d_month_seq)
-|  row-size=80B cardinality=1.19K
-|
-|--JOIN BUILD
-|  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  build expressions: (d_month_seq)
-|  |  runtime filters: RF002 <- (d_month_seq)
-|  |
-|  24:EXCHANGE [BROADCAST]
-|  |
-|  23:EXCHANGE [UNPARTITIONED]
-|  |  limit: 1
-|  |
-|  22:AGGREGATE [FINALIZE]
-|  |  group by: (d_month_seq)
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  21:EXCHANGE [HASH((d_month_seq))]
-|  |
-|  06:AGGREGATE [STREAMING]
-|  |  group by: (d_month_seq)
-|  |  row-size=4B cardinality=108
-|  |
-|  05:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 1999, d_moy = 1
-|     row-size=12B cardinality=108
-|
-12:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: s.ss_item_sk = i.i_item_sk
-|  row-size=80B cardinality=2.88M
-|
-|--JOIN BUILD
-|  |  join-table-id=02 plan-id=03 cohort-id=01
-|  |  build expressions: i.i_item_sk
-|  |  runtime filters: RF004 <- i.i_item_sk
-|  |
-|  20:EXCHANGE [BROADCAST]
-|  |
-|  04:SCAN HDFS [tpcds.item i]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     runtime filters: RF000 -> i.i_category
-|     row-size=30B cardinality=18.00K
-|
-11:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: s.ss_sold_date_sk = d.d_date_sk
-|  row-size=50B cardinality=2.88M
-|
-|--JOIN BUILD
-|  |  join-table-id=03 plan-id=04 cohort-id=01
-|  |  build expressions: d.d_date_sk
-|  |  runtime filters: RF006 <- d.d_date_sk
-|  |
-|  19:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.date_dim d]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     runtime filters: RF002 -> d.d_month_seq
-|     row-size=8B cardinality=73.05K
-|
-10:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: c.c_current_addr_sk = a.ca_address_sk
-|  row-size=42B cardinality=2.88M
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: a.ca_address_sk
-|  |  runtime filters: RF008 <- a.ca_address_sk
-|  |
-|  18:EXCHANGE [BROADCAST]
-|  |
-|  00:SCAN HDFS [tpcds.customer_address a]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     row-size=18B cardinality=50.00K
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: s.ss_customer_sk = c.c_customer_sk
-|  row-size=24B cardinality=2.88M
-|
-|--JOIN BUILD
-|  |  join-table-id=05 plan-id=06 cohort-id=01
-|  |  build expressions: c.c_customer_sk
-|  |  runtime filters: RF010 <- c.c_customer_sk
-|  |
-|  17:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.customer c]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF008 -> c.c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-02:SCAN HDFS [tpcds.store_sales s]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> s.ss_item_sk, RF006 -> s.ss_sold_date_sk, RF010 -> s.ss_customer_sk
-   row-size=16B cardinality=2.88M
-====
-# TPCDS-Q47
-with v1 as (
- select i_category, i_brand,
-        s_store_name, s_company_name,
-        d_year, d_moy,
-        sum(ss_sales_price) sum_sales,
-        avg(sum(ss_sales_price)) over
-          (partition by i_category, i_brand,
-                     s_store_name, s_company_name, d_year)
-          avg_monthly_sales,
-        rank() over
-          (partition by i_category, i_brand,
-                     s_store_name, s_company_name
-           order by d_year, d_moy) rn
- from item, store_sales, date_dim, store
- where ss_item_sk = i_item_sk and
-       ss_sold_date_sk = d_date_sk and
-       ss_store_sk = s_store_sk and
-       (
-         d_year = 2000 or
-         ( d_year = 2000-1 and d_moy =12) or
-         ( d_year = 2000+1 and d_moy =1)
-       )
- group by i_category, i_brand,
-          s_store_name, s_company_name,
-          d_year, d_moy),
- v2 as(
- select v1.i_category, v1.i_brand
-        ,v1.d_year
-        ,v1.avg_monthly_sales
-        ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum
- from v1, v1 v1_lag, v1 v1_lead
- where v1.i_category = v1_lag.i_category and
-       v1.i_category = v1_lead.i_category and
-       v1.i_brand = v1_lag.i_brand and
-       v1.i_brand = v1_lead.i_brand and
-       v1.s_store_name = v1_lag.s_store_name and
-       v1.s_store_name = v1_lead.s_store_name and
-       v1.s_company_name = v1_lag.s_company_name and
-       v1.s_company_name = v1_lead.s_company_name and
-       v1.rn = v1_lag.rn + 1 and
-       v1.rn = v1_lead.rn - 1)
- select * from ( select  *
- from v2
- where  d_year = 2000 and
-        avg_monthly_sales > 0 and
-        case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1
- order by sum_sales - avg_monthly_sales, d_year
- limit 100
- ) as v3
----- PLAN
-Max Per-Host Resource Reservation: Memory=168.44MB Threads=13
-Per-Host Resource Estimates: Memory=762MB
-PLAN-ROOT SINK
-|
-35:TOP-N [LIMIT=100]
-|  order by: sum_sales - avg_monthly_sales ASC, d_year ASC
-|  row-size=114B cardinality=100
-|
-34:HASH JOIN [INNER JOIN]
-|  hash predicates: rank() = rank() - 1, s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
-|  row-size=356B cardinality=1.09G
-|
-|--32:ANALYTIC
-|  |  functions: rank()
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name
-|  |  order by: d_year ASC, d_moy ASC
-|  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  31:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  30:AGGREGATE [FINALIZE]
-|  |  output: sum(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  29:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  runtime filters: RF012 <- s_store_sk
-|  |  row-size=125B cardinality=685.36K
-|  |
-|  |--26:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=39B cardinality=12
-|  |
-|  28:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  runtime filters: RF014 <- i_item_sk
-|  |  row-size=86B cardinality=685.36K
-|  |
-|  |--23:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     row-size=54B cardinality=18.00K
-|  |
-|  27:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF016 <- d_date_sk
-|  |  row-size=32B cardinality=685.36K
-|  |
-|  |--25:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|  |     row-size=12B cardinality=434
-|  |
-|  24:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF012 -> ss_store_sk, RF014 -> ss_item_sk, RF016 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-33:HASH JOIN [INNER JOIN]
-|  hash predicates: rank() + 1 = rank(), s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
-|  row-size=243B cardinality=1.10M
-|
-|--12:SELECT
-|  |  predicates: d_year = 2000, avg(sum(ss_sales_price)) > 0, CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
-|  |  row-size=129B cardinality=1.11K
-|  |
-|  11:ANALYTIC
-|  |  functions: avg(sum(ss_sales_price))
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name, d_year
-|  |  row-size=129B cardinality=685.36K
-|  |
-|  10:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC NULLS LAST
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  09:ANALYTIC
-|  |  functions: rank()
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name
-|  |  order by: d_year ASC, d_moy ASC
-|  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  08:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  07:AGGREGATE [FINALIZE]
-|  |  output: sum(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  06:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  runtime filters: RF006 <- s_store_sk
-|  |  row-size=125B cardinality=685.36K
-|  |
-|  |--03:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=39B cardinality=12
-|  |
-|  05:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  runtime filters: RF008 <- i_item_sk
-|  |  row-size=86B cardinality=685.36K
-|  |
-|  |--00:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     row-size=54B cardinality=18.00K
-|  |
-|  04:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF010 <- d_date_sk
-|  |  row-size=32B cardinality=685.36K
-|  |
-|  |--02:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|  |     row-size=12B cardinality=434
-|  |
-|  01:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF006 -> ss_store_sk, RF008 -> ss_item_sk, RF010 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-22:ANALYTIC
-|  functions: rank()
-|  partition by: i_category, i_brand, s_store_name, s_company_name
-|  order by: d_year ASC, d_moy ASC
-|  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  row-size=113B cardinality=685.36K
-|
-21:SORT
-|  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  row-size=105B cardinality=685.36K
-|
-20:AGGREGATE [FINALIZE]
-|  output: sum(ss_sales_price)
-|  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  row-size=105B cardinality=685.36K
-|
-19:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=125B cardinality=685.36K
-|
-|--16:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=39B cardinality=12
-|
-18:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=86B cardinality=685.36K
-|
-|--13:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=54B cardinality=18.00K
-|
-17:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF004 <- d_date_sk
-|  row-size=32B cardinality=685.36K
-|
-|--15:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|     row-size=12B cardinality=434
-|
-14:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
-   row-size=20B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=390.40MB Threads=29
-Per-Host Resource Estimates: Memory=1.06GB
-PLAN-ROOT SINK
-|
-54:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum_sales - avg_monthly_sales ASC, d_year ASC
-|  limit: 100
-|
-35:TOP-N [LIMIT=100]
-|  order by: sum_sales - avg_monthly_sales ASC, d_year ASC
-|  row-size=114B cardinality=100
-|
-34:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: rank() = rank() - 1, s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
-|  row-size=356B cardinality=1.09G
-|
-|--53:EXCHANGE [HASH(rank() - 1,s_store_name,i_category,s_company_name,i_brand)]
-|  |
-|  32:ANALYTIC
-|  |  functions: rank()
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name
-|  |  order by: d_year ASC, d_moy ASC
-|  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  31:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  51:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  50:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|  |
-|  30:AGGREGATE [STREAMING]
-|  |  output: sum(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  29:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  runtime filters: RF012 <- s_store_sk
-|  |  row-size=125B cardinality=685.36K
-|  |
-|  |--49:EXCHANGE [BROADCAST]
-|  |  |
-|  |  26:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=39B cardinality=12
-|  |
-|  28:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  runtime filters: RF014 <- i_item_sk
-|  |  row-size=86B cardinality=685.36K
-|  |
-|  |--48:EXCHANGE [BROADCAST]
-|  |  |
-|  |  23:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     row-size=54B cardinality=18.00K
-|  |
-|  27:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF016 <- d_date_sk
-|  |  row-size=32B cardinality=685.36K
-|  |
-|  |--47:EXCHANGE [BROADCAST]
-|  |  |
-|  |  25:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|  |     row-size=12B cardinality=434
-|  |
-|  24:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF012 -> ss_store_sk, RF014 -> ss_item_sk, RF016 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-52:EXCHANGE [HASH(rank(),s_store_name,i_category,s_company_name,i_brand)]
-|
-33:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: rank() + 1 = rank(), s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
-|  row-size=243B cardinality=1.10M
-|
-|--46:EXCHANGE [BROADCAST]
-|  |
-|  12:SELECT
-|  |  predicates: d_year = 2000, avg(sum(ss_sales_price)) > 0, CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
-|  |  row-size=129B cardinality=1.11K
-|  |
-|  11:ANALYTIC
-|  |  functions: avg(sum(ss_sales_price))
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name, d_year
-|  |  row-size=129B cardinality=685.36K
-|  |
-|  10:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC NULLS LAST
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  09:ANALYTIC
-|  |  functions: rank()
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name
-|  |  order by: d_year ASC, d_moy ASC
-|  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  08:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  45:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  44:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|  |
-|  07:AGGREGATE [STREAMING]
-|  |  output: sum(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  06:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  runtime filters: RF006 <- s_store_sk
-|  |  row-size=125B cardinality=685.36K
-|  |
-|  |--43:EXCHANGE [BROADCAST]
-|  |  |
-|  |  03:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=39B cardinality=12
-|  |
-|  05:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  runtime filters: RF008 <- i_item_sk
-|  |  row-size=86B cardinality=685.36K
-|  |
-|  |--42:EXCHANGE [BROADCAST]
-|  |  |
-|  |  00:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     row-size=54B cardinality=18.00K
-|  |
-|  04:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF010 <- d_date_sk
-|  |  row-size=32B cardinality=685.36K
-|  |
-|  |--41:EXCHANGE [BROADCAST]
-|  |  |
-|  |  02:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|  |     row-size=12B cardinality=434
-|  |
-|  01:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF006 -> ss_store_sk, RF008 -> ss_item_sk, RF010 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-22:ANALYTIC
-|  functions: rank()
-|  partition by: i_category, i_brand, s_store_name, s_company_name
-|  order by: d_year ASC, d_moy ASC
-|  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  row-size=113B cardinality=685.36K
-|
-21:SORT
-|  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  row-size=105B cardinality=685.36K
-|
-40:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  row-size=105B cardinality=685.36K
-|
-39:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|
-20:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  row-size=105B cardinality=685.36K
-|
-19:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF000 <- s_store_sk
-|  row-size=125B cardinality=685.36K
-|
-|--38:EXCHANGE [BROADCAST]
-|  |
-|  16:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=39B cardinality=12
-|
-18:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF002 <- i_item_sk
-|  row-size=86B cardinality=685.36K
-|
-|--37:EXCHANGE [BROADCAST]
-|  |
-|  13:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=54B cardinality=18.00K
-|
-17:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF004 <- d_date_sk
-|  row-size=32B cardinality=685.36K
-|
-|--36:EXCHANGE [BROADCAST]
-|  |
-|  15:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|     row-size=12B cardinality=434
-|
-14:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
-   row-size=20B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=698.77MB Threads=36
-Per-Host Resource Estimates: Memory=915MB
-PLAN-ROOT SINK
-|
-54:MERGING-EXCHANGE [UNPARTITIONED]
-|  order by: sum_sales - avg_monthly_sales ASC, d_year ASC
-|  limit: 100
-|
-35:TOP-N [LIMIT=100]
-|  order by: sum_sales - avg_monthly_sales ASC, d_year ASC
-|  row-size=114B cardinality=100
-|
-34:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: rank() = rank() - 1, s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
-|  row-size=356B cardinality=1.09G
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |  build expressions: rank() - 1, s_store_name, i_category, s_company_name, i_brand
-|  |
-|  53:EXCHANGE [HASH(rank() - 1,s_store_name,i_category,s_company_name,i_brand)]
-|  |
-|  32:ANALYTIC
-|  |  functions: rank()
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name
-|  |  order by: d_year ASC, d_moy ASC
-|  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  31:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  51:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  50:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|  |
-|  30:AGGREGATE [STREAMING]
-|  |  output: sum(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  29:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=125B cardinality=685.36K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=01 plan-id=02 cohort-id=02
-|  |  |  build expressions: s_store_sk
-|  |  |  runtime filters: RF012 <- s_store_sk
-|  |  |
-|  |  49:EXCHANGE [BROADCAST]
-|  |  |
-|  |  26:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=39B cardinality=12
-|  |
-|  28:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  row-size=86B cardinality=685.36K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=02 plan-id=03 cohort-id=02
-|  |  |  build expressions: i_item_sk
-|  |  |  runtime filters: RF014 <- i_item_sk
-|  |  |
-|  |  48:EXCHANGE [BROADCAST]
-|  |  |
-|  |  23:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     row-size=54B cardinality=18.00K
-|  |
-|  27:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  row-size=32B cardinality=685.36K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=03 plan-id=04 cohort-id=02
-|  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF016 <- d_date_sk
-|  |  |
-|  |  47:EXCHANGE [BROADCAST]
-|  |  |
-|  |  25:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|  |     row-size=12B cardinality=434
-|  |
-|  24:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF012 -> ss_store_sk, RF014 -> ss_item_sk, RF016 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-52:EXCHANGE [HASH(rank(),s_store_name,i_category,s_company_name,i_brand)]
-|
-33:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: rank() + 1 = rank(), s_store_name = s_store_name, i_category = i_category, s_company_name = s_company_name, i_brand = i_brand
-|  row-size=243B cardinality=1.10M
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |  build expressions: rank(), s_store_name, i_category, s_company_name, i_brand
-|  |
-|  46:EXCHANGE [BROADCAST]
-|  |
-|  12:SELECT
-|  |  predicates: d_year = 2000, avg(sum(ss_sales_price)) > 0, CASE WHEN avg(sum(ss_sales_price)) > 0 THEN abs(sum(ss_sales_price) - avg(sum(ss_sales_price))) / avg(sum(ss_sales_price)) ELSE NULL END > 0.1
-|  |  row-size=129B cardinality=1.11K
-|  |
-|  11:ANALYTIC
-|  |  functions: avg(sum(ss_sales_price))
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name, d_year
-|  |  row-size=129B cardinality=685.36K
-|  |
-|  10:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC NULLS LAST
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  09:ANALYTIC
-|  |  functions: rank()
-|  |  partition by: i_category, i_brand, s_store_name, s_company_name
-|  |  order by: d_year ASC, d_moy ASC
-|  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  |  row-size=113B cardinality=685.36K
-|  |
-|  08:SORT
-|  |  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  45:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  44:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|  |
-|  07:AGGREGATE [STREAMING]
-|  |  output: sum(ss_sales_price)
-|  |  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  |  row-size=105B cardinality=685.36K
-|  |
-|  06:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=125B cardinality=685.36K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=05 plan-id=06 cohort-id=03
-|  |  |  build expressions: s_store_sk
-|  |  |  runtime filters: RF006 <- s_store_sk
-|  |  |
-|  |  43:EXCHANGE [BROADCAST]
-|  |  |
-|  |  03:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     row-size=39B cardinality=12
-|  |
-|  05:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  row-size=86B cardinality=685.36K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=06 plan-id=07 cohort-id=03
-|  |  |  build expressions: i_item_sk
-|  |  |  runtime filters: RF008 <- i_item_sk
-|  |  |
-|  |  42:EXCHANGE [BROADCAST]
-|  |  |
-|  |  00:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     row-size=54B cardinality=18.00K
-|  |
-|  04:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  row-size=32B cardinality=685.36K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=07 plan-id=08 cohort-id=03
-|  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF010 <- d_date_sk
-|  |  |
-|  |  41:EXCHANGE [BROADCAST]
-|  |  |
-|  |  02:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|  |     row-size=12B cardinality=434
-|  |
-|  01:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF006 -> ss_store_sk, RF008 -> ss_item_sk, RF010 -> ss_sold_date_sk
-|     row-size=20B cardinality=2.88M
-|
-22:ANALYTIC
-|  functions: rank()
-|  partition by: i_category, i_brand, s_store_name, s_company_name
-|  order by: d_year ASC, d_moy ASC
-|  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-|  row-size=113B cardinality=685.36K
-|
-21:SORT
-|  order by: i_category ASC NULLS LAST, i_brand ASC NULLS LAST, s_store_name ASC NULLS LAST, s_company_name ASC NULLS LAST, d_year ASC, d_moy ASC
-|  row-size=105B cardinality=685.36K
-|
-40:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_sales_price)
-|  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  row-size=105B cardinality=685.36K
-|
-39:EXCHANGE [HASH(i_category,i_brand,s_store_name,s_company_name)]
-|
-20:AGGREGATE [STREAMING]
-|  output: sum(ss_sales_price)
-|  group by: i_category, i_brand, s_store_name, s_company_name, d_year, d_moy
-|  row-size=105B cardinality=685.36K
-|
-19:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=125B cardinality=685.36K
-|
-|--JOIN BUILD
-|  |  join-table-id=08 plan-id=09 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF000 <- s_store_sk
-|  |
-|  38:EXCHANGE [BROADCAST]
-|  |
-|  16:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     row-size=39B cardinality=12
-|
-18:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=86B cardinality=685.36K
-|
-|--JOIN BUILD
-|  |  join-table-id=09 plan-id=10 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF002 <- i_item_sk
-|  |
-|  37:EXCHANGE [BROADCAST]
-|  |
-|  13:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     row-size=54B cardinality=18.00K
-|
-17:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=32B cardinality=685.36K
-|
-|--JOIN BUILD
-|  |  join-table-id=10 plan-id=11 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF004 <- d_date_sk
-|  |
-|  36:EXCHANGE [BROADCAST]
-|  |
-|  15:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: (d_year = 2000 OR (d_year = 1999 AND d_moy = 12) OR (d_year = 2001 AND d_moy = 1))
-|     row-size=12B cardinality=434
-|
-14:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF000 -> ss_store_sk, RF002 -> ss_item_sk, RF004 -> ss_sold_date_sk
-   row-size=20B cardinality=2.88M
-====
-# TPCDS-Q66
-select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100
-from
-  (select sum(ss_ext_sales_price) promotions
-   from  store_sales
-        ,store
-        ,promotion
-        ,date_dim
-        ,customer
-        ,customer_address
-        ,item
-   where ss_sold_date_sk = d_date_sk
-   and   ss_store_sk = s_store_sk
-   and   ss_promo_sk = p_promo_sk
-   and   ss_customer_sk= c_customer_sk
-   and   ca_address_sk = c_current_addr_sk
-   and   ss_item_sk = i_item_sk
-   and   ca_gmt_offset = -5
-   and   i_category = 'Books'
-   and   (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y')
-   and   s_gmt_offset = -5
-   and   d_year = 2000
-   and   d_moy  = 11) promotional_sales,
-  (select sum(ss_ext_sales_price) total
-   from  store_sales
-        ,store
-        ,date_dim
-        ,customer
-        ,customer_address
-        ,item
-   where ss_sold_date_sk = d_date_sk
-   and   ss_store_sk = s_store_sk
-   and   ss_customer_sk= c_customer_sk
-   and   ca_address_sk = c_current_addr_sk
-   and   ss_item_sk = i_item_sk
-   and   ca_gmt_offset = -5
-   and   i_category = 'Books'
-   and   s_gmt_offset = -5
-   and   d_year = 2000
-   and   d_moy  = 11) all_sales
-order by promotions, total
----- PLAN
-Max Per-Host Resource Reservation: Memory=111.39MB Threads=14
-Per-Host Resource Estimates: Memory=703MB
-PLAN-ROOT SINK
-|
-27:SORT
-|  order by: promotions ASC, total ASC
-|  row-size=32B cardinality=1
-|
-26:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=32B cardinality=1
-|
-|--25:AGGREGATE [FINALIZE]
-|  |  output: sum(ss_ext_sales_price)
-|  |  row-size=16B cardinality=1
-|  |
-|  24:HASH JOIN [INNER JOIN]
-|  |  hash predicates: c_current_addr_sk = ca_address_sk
-|  |  runtime filters: RF012 <- ca_address_sk
-|  |  row-size=86B cardinality=3.30K
-|  |
-|  |--18:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     predicates: ca_gmt_offset = -5
-|  |     row-size=8B cardinality=8.33K
-|  |
-|  23:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_customer_sk = c_customer_sk
-|  |  runtime filters: RF014 <- c_customer_sk
-|  |  row-size=78B cardinality=17.06K
-|  |
-|  |--17:SCAN HDFS [tpcds.customer]
-|  |     HDFS partitions=1/1 files=1 size=12.60MB
-|  |     runtime filters: RF012 -> c_current_addr_sk
-|  |     row-size=8B cardinality=100.00K
-|  |
-|  22:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=70B cardinality=17.06K
-|  |
-|  |--15:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: s_gmt_offset = -5
-|  |     row-size=8B cardinality=12
-|  |
-|  21:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  runtime filters: RF018 <- i_item_sk
-|  |  row-size=62B cardinality=17.06K
-|  |
-|  |--19:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     predicates: i_category = 'Books'
-|  |     row-size=26B cardinality=1.80K
-|  |
-|  20:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF020 <- d_date_sk
-|  |  row-size=36B cardinality=170.55K
-|  |
-|  |--16:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_year = 2000, d_moy = 11
-|  |     row-size=12B cardinality=108
-|  |
-|  14:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF020 -> ss_sold_date_sk, RF018 -> ss_item_sk, RF014 -> ss_customer_sk
-|     row-size=24B cardinality=2.88M
-|
-13:AGGREGATE [FINALIZE]
-|  output: sum(ss_ext_sales_price)
-|  row-size=16B cardinality=1
-|
-12:HASH JOIN [INNER JOIN]
-|  hash predicates: c_current_addr_sk = ca_address_sk
-|  runtime filters: RF000 <- ca_address_sk
-|  row-size=133B cardinality=3.28K
-|
-|--05:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     predicates: ca_gmt_offset = -5
-|     row-size=8B cardinality=8.33K
-|
-11:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF002 <- c_customer_sk
-|  row-size=125B cardinality=16.94K
-|
-|--04:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-10:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF004 <- s_store_sk
-|  row-size=117B cardinality=16.94K
-|
-|--01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_gmt_offset = -5
-|     row-size=8B cardinality=12
-|
-09:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_promo_sk = p_promo_sk
-|  runtime filters: RF006 <- p_promo_sk
-|  row-size=109B cardinality=16.94K
-|
-|--02:SCAN HDFS [tpcds.promotion]
-|     HDFS partitions=1/1 files=1 size=36.36KB
-|     predicates: (p_channel_dmail = 'Y' OR p_channel_email = 'Y' OR p_channel_tv = 'Y')
-|     row-size=43B cardinality=300
-|
-08:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF008 <- i_item_sk
-|  row-size=66B cardinality=17.06K
-|
-|--06:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_category = 'Books'
-|     row-size=26B cardinality=1.80K
-|
-07:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF010 <- d_date_sk
-|  row-size=40B cardinality=170.55K
-|
-|--03:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 2000, d_moy = 11
-|     row-size=12B cardinality=108
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF010 -> ss_sold_date_sk, RF008 -> ss_item_sk, RF006 -> ss_promo_sk, RF002 -> ss_customer_sk, RF004 -> ss_store_sk
-   row-size=28B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=121.39MB Threads=30
-Per-Host Resource Estimates: Memory=755MB
-PLAN-ROOT SINK
-|
-27:SORT
-|  order by: promotions ASC, total ASC
-|  row-size=32B cardinality=1
-|
-26:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=32B cardinality=1
-|
-|--45:EXCHANGE [UNPARTITIONED]
-|  |
-|  44:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_ext_sales_price)
-|  |  row-size=16B cardinality=1
-|  |
-|  43:EXCHANGE [UNPARTITIONED]
-|  |
-|  25:AGGREGATE
-|  |  output: sum(ss_ext_sales_price)
-|  |  row-size=16B cardinality=1
-|  |
-|  24:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: c_current_addr_sk = ca_address_sk
-|  |  runtime filters: RF012 <- ca_address_sk
-|  |  row-size=86B cardinality=3.30K
-|  |
-|  |--42:EXCHANGE [BROADCAST]
-|  |  |
-|  |  18:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     predicates: ca_gmt_offset = -5
-|  |     row-size=8B cardinality=8.33K
-|  |
-|  23:HASH JOIN [INNER JOIN, PARTITIONED]
-|  |  hash predicates: ss_customer_sk = c_customer_sk
-|  |  runtime filters: RF014 <- c_customer_sk
-|  |  row-size=78B cardinality=17.06K
-|  |
-|  |--41:EXCHANGE [HASH(c_customer_sk)]
-|  |  |
-|  |  17:SCAN HDFS [tpcds.customer]
-|  |     HDFS partitions=1/1 files=1 size=12.60MB
-|  |     runtime filters: RF012 -> c_current_addr_sk
-|  |     row-size=8B cardinality=100.00K
-|  |
-|  40:EXCHANGE [HASH(ss_customer_sk)]
-|  |
-|  22:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=70B cardinality=17.06K
-|  |
-|  |--39:EXCHANGE [BROADCAST]
-|  |  |
-|  |  15:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: s_gmt_offset = -5
-|  |     row-size=8B cardinality=12
-|  |
-|  21:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  runtime filters: RF018 <- i_item_sk
-|  |  row-size=62B cardinality=17.06K
-|  |
-|  |--38:EXCHANGE [BROADCAST]
-|  |  |
-|  |  19:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     predicates: i_category = 'Books'
-|  |     row-size=26B cardinality=1.80K
-|  |
-|  20:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  runtime filters: RF020 <- d_date_sk
-|  |  row-size=36B cardinality=170.55K
-|  |
-|  |--37:EXCHANGE [BROADCAST]
-|  |  |
-|  |  16:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_year = 2000, d_moy = 11
-|  |     row-size=12B cardinality=108
-|  |
-|  14:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF020 -> ss_sold_date_sk, RF018 -> ss_item_sk, RF014 -> ss_customer_sk
-|     row-size=24B cardinality=2.88M
-|
-36:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  row-size=16B cardinality=1
-|
-35:EXCHANGE [UNPARTITIONED]
-|
-13:AGGREGATE
-|  output: sum(ss_ext_sales_price)
-|  row-size=16B cardinality=1
-|
-12:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: c_current_addr_sk = ca_address_sk
-|  runtime filters: RF000 <- ca_address_sk
-|  row-size=133B cardinality=3.28K
-|
-|--34:EXCHANGE [BROADCAST]
-|  |
-|  05:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     predicates: ca_gmt_offset = -5
-|     row-size=8B cardinality=8.33K
-|
-11:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  runtime filters: RF002 <- c_customer_sk
-|  row-size=125B cardinality=16.94K
-|
-|--33:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  04:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-32:EXCHANGE [HASH(ss_customer_sk)]
-|
-10:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  runtime filters: RF004 <- s_store_sk
-|  row-size=117B cardinality=16.94K
-|
-|--31:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_gmt_offset = -5
-|     row-size=8B cardinality=12
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_promo_sk = p_promo_sk
-|  runtime filters: RF006 <- p_promo_sk
-|  row-size=109B cardinality=16.94K
-|
-|--30:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.promotion]
-|     HDFS partitions=1/1 files=1 size=36.36KB
-|     predicates: (p_channel_dmail = 'Y' OR p_channel_email = 'Y' OR p_channel_tv = 'Y')
-|     row-size=43B cardinality=300
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  runtime filters: RF008 <- i_item_sk
-|  row-size=66B cardinality=17.06K
-|
-|--29:EXCHANGE [BROADCAST]
-|  |
-|  06:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_category = 'Books'
-|     row-size=26B cardinality=1.80K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  runtime filters: RF010 <- d_date_sk
-|  row-size=40B cardinality=170.55K
-|
-|--28:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 2000, d_moy = 11
-|     row-size=12B cardinality=108
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF010 -> ss_sold_date_sk, RF008 -> ss_item_sk, RF006 -> ss_promo_sk, RF002 -> ss_customer_sk, RF004 -> ss_store_sk
-   row-size=28B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=166.70MB Threads=35
-Per-Host Resource Estimates: Memory=411MB
-PLAN-ROOT SINK
-|
-27:SORT
-|  order by: promotions ASC, total ASC
-|  row-size=32B cardinality=1
-|
-26:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 00
-|  row-size=32B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |
-|  45:EXCHANGE [UNPARTITIONED]
-|  |
-|  44:AGGREGATE [FINALIZE]
-|  |  output: sum:merge(ss_ext_sales_price)
-|  |  row-size=16B cardinality=1
-|  |
-|  43:EXCHANGE [UNPARTITIONED]
-|  |
-|  25:AGGREGATE
-|  |  output: sum(ss_ext_sales_price)
-|  |  row-size=16B cardinality=1
-|  |
-|  24:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: c_current_addr_sk = ca_address_sk
-|  |  row-size=86B cardinality=3.30K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=01 plan-id=02 cohort-id=02
-|  |  |  build expressions: ca_address_sk
-|  |  |  runtime filters: RF012 <- ca_address_sk
-|  |  |
-|  |  42:EXCHANGE [BROADCAST]
-|  |  |
-|  |  18:SCAN HDFS [tpcds.customer_address]
-|  |     HDFS partitions=1/1 files=1 size=5.25MB
-|  |     predicates: ca_gmt_offset = -5
-|  |     row-size=8B cardinality=8.33K
-|  |
-|  23:HASH JOIN [INNER JOIN, PARTITIONED]
-|  |  hash predicates: ss_customer_sk = c_customer_sk
-|  |  row-size=78B cardinality=17.06K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=02 plan-id=03 cohort-id=02
-|  |  |  build expressions: c_customer_sk
-|  |  |  runtime filters: RF014 <- c_customer_sk
-|  |  |
-|  |  41:EXCHANGE [HASH(c_customer_sk)]
-|  |  |
-|  |  17:SCAN HDFS [tpcds.customer]
-|  |     HDFS partitions=1/1 files=1 size=12.60MB
-|  |     runtime filters: RF012 -> c_current_addr_sk
-|  |     row-size=8B cardinality=100.00K
-|  |
-|  40:EXCHANGE [HASH(ss_customer_sk)]
-|  |
-|  22:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=70B cardinality=17.06K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=03 plan-id=04 cohort-id=02
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  39:EXCHANGE [BROADCAST]
-|  |  |
-|  |  15:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: s_gmt_offset = -5
-|  |     row-size=8B cardinality=12
-|  |
-|  21:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_item_sk = i_item_sk
-|  |  row-size=62B cardinality=17.06K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=04 plan-id=05 cohort-id=02
-|  |  |  build expressions: i_item_sk
-|  |  |  runtime filters: RF018 <- i_item_sk
-|  |  |
-|  |  38:EXCHANGE [BROADCAST]
-|  |  |
-|  |  19:SCAN HDFS [tpcds.item]
-|  |     HDFS partitions=1/1 files=1 size=4.82MB
-|  |     predicates: i_category = 'Books'
-|  |     row-size=26B cardinality=1.80K
-|  |
-|  20:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_date_sk = d_date_sk
-|  |  row-size=36B cardinality=170.55K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=05 plan-id=06 cohort-id=02
-|  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF020 <- d_date_sk
-|  |  |
-|  |  37:EXCHANGE [BROADCAST]
-|  |  |
-|  |  16:SCAN HDFS [tpcds.date_dim]
-|  |     HDFS partitions=1/1 files=1 size=9.84MB
-|  |     predicates: d_year = 2000, d_moy = 11
-|  |     row-size=12B cardinality=108
-|  |
-|  14:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF020 -> ss_sold_date_sk, RF018 -> ss_item_sk, RF014 -> ss_customer_sk
-|     row-size=24B cardinality=2.88M
-|
-36:AGGREGATE [FINALIZE]
-|  output: sum:merge(ss_ext_sales_price)
-|  row-size=16B cardinality=1
-|
-35:EXCHANGE [UNPARTITIONED]
-|
-13:AGGREGATE
-|  output: sum(ss_ext_sales_price)
-|  row-size=16B cardinality=1
-|
-12:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: c_current_addr_sk = ca_address_sk
-|  row-size=133B cardinality=3.28K
-|
-|--JOIN BUILD
-|  |  join-table-id=06 plan-id=07 cohort-id=01
-|  |  build expressions: ca_address_sk
-|  |  runtime filters: RF000 <- ca_address_sk
-|  |
-|  34:EXCHANGE [BROADCAST]
-|  |
-|  05:SCAN HDFS [tpcds.customer_address]
-|     HDFS partitions=1/1 files=1 size=5.25MB
-|     predicates: ca_gmt_offset = -5
-|     row-size=8B cardinality=8.33K
-|
-11:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash predicates: ss_customer_sk = c_customer_sk
-|  row-size=125B cardinality=16.94K
-|
-|--JOIN BUILD
-|  |  join-table-id=07 plan-id=08 cohort-id=01
-|  |  build expressions: c_customer_sk
-|  |  runtime filters: RF002 <- c_customer_sk
-|  |
-|  33:EXCHANGE [HASH(c_customer_sk)]
-|  |
-|  04:SCAN HDFS [tpcds.customer]
-|     HDFS partitions=1/1 files=1 size=12.60MB
-|     runtime filters: RF000 -> c_current_addr_sk
-|     row-size=8B cardinality=100.00K
-|
-32:EXCHANGE [HASH(ss_customer_sk)]
-|
-10:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=117B cardinality=16.94K
-|
-|--JOIN BUILD
-|  |  join-table-id=08 plan-id=09 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |  runtime filters: RF004 <- s_store_sk
-|  |
-|  31:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: s_gmt_offset = -5
-|     row-size=8B cardinality=12
-|
-09:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_promo_sk = p_promo_sk
-|  row-size=109B cardinality=16.94K
-|
-|--JOIN BUILD
-|  |  join-table-id=09 plan-id=10 cohort-id=01
-|  |  build expressions: p_promo_sk
-|  |  runtime filters: RF006 <- p_promo_sk
-|  |
-|  30:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.promotion]
-|     HDFS partitions=1/1 files=1 size=36.36KB
-|     predicates: (p_channel_dmail = 'Y' OR p_channel_email = 'Y' OR p_channel_tv = 'Y')
-|     row-size=43B cardinality=300
-|
-08:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_item_sk = i_item_sk
-|  row-size=66B cardinality=17.06K
-|
-|--JOIN BUILD
-|  |  join-table-id=10 plan-id=11 cohort-id=01
-|  |  build expressions: i_item_sk
-|  |  runtime filters: RF008 <- i_item_sk
-|  |
-|  29:EXCHANGE [BROADCAST]
-|  |
-|  06:SCAN HDFS [tpcds.item]
-|     HDFS partitions=1/1 files=1 size=4.82MB
-|     predicates: i_category = 'Books'
-|     row-size=26B cardinality=1.80K
-|
-07:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_date_sk = d_date_sk
-|  row-size=40B cardinality=170.55K
-|
-|--JOIN BUILD
-|  |  join-table-id=11 plan-id=12 cohort-id=01
-|  |  build expressions: d_date_sk
-|  |  runtime filters: RF010 <- d_date_sk
-|  |
-|  28:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.date_dim]
-|     HDFS partitions=1/1 files=1 size=9.84MB
-|     predicates: d_year = 2000, d_moy = 11
-|     row-size=12B cardinality=108
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF010 -> ss_sold_date_sk, RF008 -> ss_item_sk, RF006 -> ss_promo_sk, RF002 -> ss_customer_sk, RF004 -> ss_store_sk
-   row-size=28B cardinality=2.88M
-====
-# TPCDS-Q88
-select  *
-from
- (select count(*) h8_30_to_9
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 8
-     and time_dim.t_minute >= 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s1,
- (select count(*) h9_to_9_30
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 9
-     and time_dim.t_minute < 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s2,
- (select count(*) h9_30_to_10
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 9
-     and time_dim.t_minute >= 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s3,
- (select count(*) h10_to_10_30
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 10
-     and time_dim.t_minute < 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s4,
- (select count(*) h10_30_to_11
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 10
-     and time_dim.t_minute >= 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s5,
- (select count(*) h11_to_11_30
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 11
-     and time_dim.t_minute < 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s6,
- (select count(*) h11_30_to_12
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 11
-     and time_dim.t_minute >= 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s7,
- (select count(*) h12_to_12_30
- from store_sales, household_demographics , time_dim, store
- where ss_sold_time_sk = time_dim.t_time_sk
-     and ss_hdemo_sk = household_demographics.hd_demo_sk
-     and ss_store_sk = s_store_sk
-     and time_dim.t_hour = 12
-     and time_dim.t_minute < 30
-     and ((household_demographics.hd_dep_count = 1 and household_demographics.hd_vehicle_count<=1+2) or
-          (household_demographics.hd_dep_count = 0 and household_demographics.hd_vehicle_count<=0+2) or
-          (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2))
-     and store.s_store_name = 'ese') s8
----- PLAN
-Max Per-Host Resource Reservation: Memory=186.56MB Threads=33
-Per-Host Resource Estimates: Memory=1.81GB
-PLAN-ROOT SINK
-|
-70:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=64B cardinality=1
-|
-|--63:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  62:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--59:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  61:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--57:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  60:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF046 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--58:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 12, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  56:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF046 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-69:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=56B cardinality=1
-|
-|--55:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  54:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--51:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  53:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--49:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  52:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF040 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--50:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 11, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  48:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF040 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-68:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=48B cardinality=1
-|
-|--47:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  46:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--43:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  45:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--41:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  44:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF034 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--42:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 11, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  40:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF034 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-67:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=40B cardinality=1
-|
-|--39:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  38:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--35:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  37:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--33:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  36:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF028 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--34:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 10, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  32:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF028 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-66:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=32B cardinality=1
-|
-|--31:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  30:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--27:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  29:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--25:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  28:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF022 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--26:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 10, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  24:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF022 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-65:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=24B cardinality=1
-|
-|--23:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  22:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--19:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  21:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--17:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  20:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF016 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--18:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 9, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  16:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF016 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-64:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=16B cardinality=1
-|
-|--15:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  14:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--11:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  13:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  runtime filters: RF008 <- household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--09:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  12:HASH JOIN [INNER JOIN]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF010 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--10:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 9, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  08:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF010 -> ss_sold_time_sk, RF008 -> ss_hdemo_sk
-|     row-size=12B cardinality=2.88M
-|
-07:AGGREGATE [FINALIZE]
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-06:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=56B cardinality=2.27K
-|
-|--03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_store_name = 'ese'
-|     row-size=20B cardinality=2
-|
-05:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF002 <- household_demographics.hd_demo_sk
-|  row-size=36B cardinality=6.82K
-|
-|--01:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|     row-size=12B cardinality=720
-|
-04:HASH JOIN [INNER JOIN]
-|  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  runtime filters: RF004 <- time_dim.t_time_sk
-|  row-size=24B cardinality=69.82K
-|
-|--02:SCAN HDFS [tpcds.time_dim]
-|     HDFS partitions=1/1 files=1 size=4.87MB
-|     predicates: time_dim.t_hour = 8, time_dim.t_minute >= 30
-|     row-size=12B cardinality=1.14K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> ss_sold_time_sk, RF002 -> ss_hdemo_sk
-   row-size=12B cardinality=2.88M
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=186.56MB Threads=72
-Per-Host Resource Estimates: Memory=1.96GB
-PLAN-ROOT SINK
-|
-70:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=64B cardinality=1
-|
-|--117:EXCHANGE [UNPARTITIONED]
-|  |
-|  116:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  115:EXCHANGE [UNPARTITIONED]
-|  |
-|  63:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  62:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--114:EXCHANGE [BROADCAST]
-|  |  |
-|  |  59:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  61:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--113:EXCHANGE [BROADCAST]
-|  |  |
-|  |  57:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  60:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF046 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--112:EXCHANGE [BROADCAST]
-|  |  |
-|  |  58:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 12, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  56:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF046 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-69:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=56B cardinality=1
-|
-|--111:EXCHANGE [UNPARTITIONED]
-|  |
-|  110:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  109:EXCHANGE [UNPARTITIONED]
-|  |
-|  55:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  54:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--108:EXCHANGE [BROADCAST]
-|  |  |
-|  |  51:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  53:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--107:EXCHANGE [BROADCAST]
-|  |  |
-|  |  49:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  52:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF040 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--106:EXCHANGE [BROADCAST]
-|  |  |
-|  |  50:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 11, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  48:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF040 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-68:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=48B cardinality=1
-|
-|--105:EXCHANGE [UNPARTITIONED]
-|  |
-|  104:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  103:EXCHANGE [UNPARTITIONED]
-|  |
-|  47:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  46:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--102:EXCHANGE [BROADCAST]
-|  |  |
-|  |  43:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  45:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--101:EXCHANGE [BROADCAST]
-|  |  |
-|  |  41:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  44:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF034 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--100:EXCHANGE [BROADCAST]
-|  |  |
-|  |  42:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 11, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  40:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF034 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-67:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=40B cardinality=1
-|
-|--99:EXCHANGE [UNPARTITIONED]
-|  |
-|  98:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  97:EXCHANGE [UNPARTITIONED]
-|  |
-|  39:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  38:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--96:EXCHANGE [BROADCAST]
-|  |  |
-|  |  35:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  37:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--95:EXCHANGE [BROADCAST]
-|  |  |
-|  |  33:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  36:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF028 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--94:EXCHANGE [BROADCAST]
-|  |  |
-|  |  34:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 10, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  32:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF028 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-66:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=32B cardinality=1
-|
-|--93:EXCHANGE [UNPARTITIONED]
-|  |
-|  92:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  91:EXCHANGE [UNPARTITIONED]
-|  |
-|  31:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  30:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--90:EXCHANGE [BROADCAST]
-|  |  |
-|  |  27:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  29:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--89:EXCHANGE [BROADCAST]
-|  |  |
-|  |  25:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  28:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF022 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--88:EXCHANGE [BROADCAST]
-|  |  |
-|  |  26:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 10, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  24:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF022 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-65:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=24B cardinality=1
-|
-|--87:EXCHANGE [UNPARTITIONED]
-|  |
-|  86:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  85:EXCHANGE [UNPARTITIONED]
-|  |
-|  23:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  22:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--84:EXCHANGE [BROADCAST]
-|  |  |
-|  |  19:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  21:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--83:EXCHANGE [BROADCAST]
-|  |  |
-|  |  17:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  20:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF016 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--82:EXCHANGE [BROADCAST]
-|  |  |
-|  |  18:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 9, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  16:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF016 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-64:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=16B cardinality=1
-|
-|--81:EXCHANGE [UNPARTITIONED]
-|  |
-|  80:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  79:EXCHANGE [UNPARTITIONED]
-|  |
-|  15:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  14:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--78:EXCHANGE [BROADCAST]
-|  |  |
-|  |  11:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  13:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  runtime filters: RF008 <- household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--77:EXCHANGE [BROADCAST]
-|  |  |
-|  |  09:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  12:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  runtime filters: RF010 <- time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--76:EXCHANGE [BROADCAST]
-|  |  |
-|  |  10:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 9, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  08:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF010 -> ss_sold_time_sk, RF008 -> ss_hdemo_sk
-|     row-size=12B cardinality=2.88M
-|
-75:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=1
-|
-74:EXCHANGE [UNPARTITIONED]
-|
-07:AGGREGATE
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=56B cardinality=2.27K
-|
-|--73:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_store_name = 'ese'
-|     row-size=20B cardinality=2
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  runtime filters: RF002 <- household_demographics.hd_demo_sk
-|  row-size=36B cardinality=6.82K
-|
-|--72:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|     row-size=12B cardinality=720
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  runtime filters: RF004 <- time_dim.t_time_sk
-|  row-size=24B cardinality=69.82K
-|
-|--71:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.time_dim]
-|     HDFS partitions=1/1 files=1 size=4.87MB
-|     predicates: time_dim.t_hour = 8, time_dim.t_minute >= 30
-|     row-size=12B cardinality=1.14K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> ss_sold_time_sk, RF002 -> ss_hdemo_sk
-   row-size=12B cardinality=2.88M
----- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=307.06MB Threads=79
-Per-Host Resource Estimates: Memory=994MB
-PLAN-ROOT SINK
-|
-70:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 00
-|  row-size=64B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=00 plan-id=01 cohort-id=01
-|  |
-|  117:EXCHANGE [UNPARTITIONED]
-|  |
-|  116:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  115:EXCHANGE [UNPARTITIONED]
-|  |
-|  63:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  62:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=01 plan-id=02 cohort-id=02
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  114:EXCHANGE [BROADCAST]
-|  |  |
-|  |  59:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  61:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=02 plan-id=03 cohort-id=02
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |
-|  |  113:EXCHANGE [BROADCAST]
-|  |  |
-|  |  57:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  60:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=03 plan-id=04 cohort-id=02
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF046 <- time_dim.t_time_sk
-|  |  |
-|  |  112:EXCHANGE [BROADCAST]
-|  |  |
-|  |  58:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 12, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  56:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF046 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-69:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 04
-|  row-size=56B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
-|  |
-|  111:EXCHANGE [UNPARTITIONED]
-|  |
-|  110:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  109:EXCHANGE [UNPARTITIONED]
-|  |
-|  55:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  54:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=05 plan-id=06 cohort-id=03
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  108:EXCHANGE [BROADCAST]
-|  |  |
-|  |  51:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  53:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=06 plan-id=07 cohort-id=03
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |
-|  |  107:EXCHANGE [BROADCAST]
-|  |  |
-|  |  49:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  52:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=07 plan-id=08 cohort-id=03
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF040 <- time_dim.t_time_sk
-|  |  |
-|  |  106:EXCHANGE [BROADCAST]
-|  |  |
-|  |  50:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 11, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  48:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF040 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-68:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 08
-|  row-size=48B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=08 plan-id=09 cohort-id=01
-|  |
-|  105:EXCHANGE [UNPARTITIONED]
-|  |
-|  104:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  103:EXCHANGE [UNPARTITIONED]
-|  |
-|  47:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  46:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=09 plan-id=10 cohort-id=04
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  102:EXCHANGE [BROADCAST]
-|  |  |
-|  |  43:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  45:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=10 plan-id=11 cohort-id=04
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |
-|  |  101:EXCHANGE [BROADCAST]
-|  |  |
-|  |  41:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  44:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=11 plan-id=12 cohort-id=04
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF034 <- time_dim.t_time_sk
-|  |  |
-|  |  100:EXCHANGE [BROADCAST]
-|  |  |
-|  |  42:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 11, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  40:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF034 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-67:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 12
-|  row-size=40B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=12 plan-id=13 cohort-id=01
-|  |
-|  99:EXCHANGE [UNPARTITIONED]
-|  |
-|  98:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  97:EXCHANGE [UNPARTITIONED]
-|  |
-|  39:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  38:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=13 plan-id=14 cohort-id=05
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  96:EXCHANGE [BROADCAST]
-|  |  |
-|  |  35:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  37:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=14 plan-id=15 cohort-id=05
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |
-|  |  95:EXCHANGE [BROADCAST]
-|  |  |
-|  |  33:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  36:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=15 plan-id=16 cohort-id=05
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF028 <- time_dim.t_time_sk
-|  |  |
-|  |  94:EXCHANGE [BROADCAST]
-|  |  |
-|  |  34:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 10, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  32:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF028 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-66:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 16
-|  row-size=32B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=16 plan-id=17 cohort-id=01
-|  |
-|  93:EXCHANGE [UNPARTITIONED]
-|  |
-|  92:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  91:EXCHANGE [UNPARTITIONED]
-|  |
-|  31:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  30:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=17 plan-id=18 cohort-id=06
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  90:EXCHANGE [BROADCAST]
-|  |  |
-|  |  27:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  29:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=18 plan-id=19 cohort-id=06
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |
-|  |  89:EXCHANGE [BROADCAST]
-|  |  |
-|  |  25:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  28:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=19 plan-id=20 cohort-id=06
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF022 <- time_dim.t_time_sk
-|  |  |
-|  |  88:EXCHANGE [BROADCAST]
-|  |  |
-|  |  26:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 10, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  24:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF022 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-65:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 20
-|  row-size=24B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=20 plan-id=21 cohort-id=01
-|  |
-|  87:EXCHANGE [UNPARTITIONED]
-|  |
-|  86:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  85:EXCHANGE [UNPARTITIONED]
-|  |
-|  23:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  22:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=21 plan-id=22 cohort-id=07
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  84:EXCHANGE [BROADCAST]
-|  |  |
-|  |  19:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  21:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=22 plan-id=23 cohort-id=07
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |
-|  |  83:EXCHANGE [BROADCAST]
-|  |  |
-|  |  17:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  20:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=23 plan-id=24 cohort-id=07
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF016 <- time_dim.t_time_sk
-|  |  |
-|  |  82:EXCHANGE [BROADCAST]
-|  |  |
-|  |  18:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 9, time_dim.t_minute >= 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  16:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF016 -> ss_sold_time_sk
-|     row-size=12B cardinality=2.88M
-|
-64:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  join table id: 24
-|  row-size=16B cardinality=1
-|
-|--JOIN BUILD
-|  |  join-table-id=24 plan-id=25 cohort-id=01
-|  |
-|  81:EXCHANGE [UNPARTITIONED]
-|  |
-|  80:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  79:EXCHANGE [UNPARTITIONED]
-|  |
-|  15:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  14:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_store_sk = s_store_sk
-|  |  row-size=56B cardinality=2.27K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=25 plan-id=26 cohort-id=08
-|  |  |  build expressions: s_store_sk
-|  |  |
-|  |  78:EXCHANGE [BROADCAST]
-|  |  |
-|  |  11:SCAN HDFS [tpcds.store]
-|  |     HDFS partitions=1/1 files=1 size=3.08KB
-|  |     predicates: store.s_store_name = 'ese'
-|  |     row-size=20B cardinality=2
-|  |
-|  13:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  |  row-size=36B cardinality=6.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=26 plan-id=27 cohort-id=08
-|  |  |  build expressions: household_demographics.hd_demo_sk
-|  |  |  runtime filters: RF008 <- household_demographics.hd_demo_sk
-|  |  |
-|  |  77:EXCHANGE [BROADCAST]
-|  |  |
-|  |  09:SCAN HDFS [tpcds.household_demographics]
-|  |     HDFS partitions=1/1 files=1 size=148.10KB
-|  |     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|  |     row-size=12B cardinality=720
-|  |
-|  12:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  |  row-size=24B cardinality=69.82K
-|  |
-|  |--JOIN BUILD
-|  |  |  join-table-id=27 plan-id=28 cohort-id=08
-|  |  |  build expressions: time_dim.t_time_sk
-|  |  |  runtime filters: RF010 <- time_dim.t_time_sk
-|  |  |
-|  |  76:EXCHANGE [BROADCAST]
-|  |  |
-|  |  10:SCAN HDFS [tpcds.time_dim]
-|  |     HDFS partitions=1/1 files=1 size=4.87MB
-|  |     predicates: time_dim.t_hour = 9, time_dim.t_minute < 30
-|  |     row-size=12B cardinality=1.14K
-|  |
-|  08:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     runtime filters: RF010 -> ss_sold_time_sk, RF008 -> ss_hdemo_sk
-|     row-size=12B cardinality=2.88M
-|
-75:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=1
-|
-74:EXCHANGE [UNPARTITIONED]
-|
-07:AGGREGATE
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-06:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_store_sk = s_store_sk
-|  row-size=56B cardinality=2.27K
-|
-|--JOIN BUILD
-|  |  join-table-id=28 plan-id=29 cohort-id=01
-|  |  build expressions: s_store_sk
-|  |
-|  73:EXCHANGE [BROADCAST]
-|  |
-|  03:SCAN HDFS [tpcds.store]
-|     HDFS partitions=1/1 files=1 size=3.08KB
-|     predicates: store.s_store_name = 'ese'
-|     row-size=20B cardinality=2
-|
-05:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_hdemo_sk = household_demographics.hd_demo_sk
-|  row-size=36B cardinality=6.82K
-|
-|--JOIN BUILD
-|  |  join-table-id=29 plan-id=30 cohort-id=01
-|  |  build expressions: household_demographics.hd_demo_sk
-|  |  runtime filters: RF002 <- household_demographics.hd_demo_sk
-|  |
-|  72:EXCHANGE [BROADCAST]
-|  |
-|  01:SCAN HDFS [tpcds.household_demographics]
-|     HDFS partitions=1/1 files=1 size=148.10KB
-|     predicates: ((household_demographics.hd_dep_count = 1 AND household_demographics.hd_vehicle_count <= 3) OR (household_demographics.hd_dep_count = 0 AND household_demographics.hd_vehicle_count <= 2) OR (household_demographics.hd_dep_count = 2 AND household_demographics.hd_vehicle_count <= 4))
-|     row-size=12B cardinality=720
-|
-04:HASH JOIN [INNER JOIN, BROADCAST]
-|  hash predicates: ss_sold_time_sk = time_dim.t_time_sk
-|  row-size=24B cardinality=69.82K
-|
-|--JOIN BUILD
-|  |  join-table-id=30 plan-id=31 cohort-id=01
-|  |  build expressions: time_dim.t_time_sk
-|  |  runtime filters: RF004 <- time_dim.t_time_sk
-|  |
-|  71:EXCHANGE [BROADCAST]
-|  |
-|  02:SCAN HDFS [tpcds.time_dim]
-|     HDFS partitions=1/1 files=1 size=4.87MB
-|     predicates: time_dim.t_hour = 8, time_dim.t_minute >= 30
-|     row-size=12B cardinality=1.14K
-|
-00:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   runtime filters: RF004 -> ss_sold_time_sk, RF002 -> ss_hdemo_sk
-   row-size=12B cardinality=2.88M
-====
-# TPCDS-Q9
-select case when (select count(*)
-                  from store_sales
-                  where ss_quantity between 1 and 20) > 74129
-            then (select avg(ss_ext_discount_amt)
-                  from store_sales
-                  where ss_quantity between 1 and 20)
-            else (select avg(ss_net_profit)
-                  from store_sales
-                  where ss_quantity between 1 and 20) end bucket1,
-       case when (select count(*)
-                  from store_sales
-                  where ss_quantity between 21 and 40) > 122840
-            then (select avg(ss_ext_discount_amt)
-                  from store_sales
-                  where ss_quantity between 21 and 40)
-            else (select avg(ss_net_profit)
-                  from store_sales
-                  where ss_quantity between 21 and 40) end bucket2,
-       case when (select count(*)
-                  from store_sales
-                  where ss_quantity between 41 and 60) > 56580
-            then (select avg(ss_ext_discount_amt)
-                  from store_sales
-                  where ss_quantity between 41 and 60)
-            else (select avg(ss_net_profit)
-                  from store_sales
-                  where ss_quantity between 41 and 60) end bucket3,
-       case when (select count(*)
-                  from store_sales
-                  where ss_quantity between 61 and 80) > 10097
-            then (select avg(ss_ext_discount_amt)
-                  from store_sales
-                  where ss_quantity between 61 and 80)
-            else (select avg(ss_net_profit)
-                  from store_sales
-                  where ss_quantity between 61 and 80) end bucket4,
-       case when (select count(*)
-                  from store_sales
-                  where ss_quantity between 81 and 100) > 165306
-            then (select avg(ss_ext_discount_amt)
-                  from store_sales
-                  where ss_quantity between 81 and 100)
-            else (select avg(ss_net_profit)
-                  from store_sales
-                  where ss_quantity between 81 and 100) end bucket5
-from reason
-where r_reason_sk = 1
----- PLAN
-Max Per-Host Resource Reservation: Memory=120.01MB Threads=17
-Per-Host Resource Estimates: Memory=2.05GB
-PLAN-ROOT SINK
-|
-45:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=124B cardinality=1
-|
-|--30:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  29:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 100, ss_quantity >= 81
-|     row-size=8B cardinality=288.04K
-|
-44:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=116B cardinality=1
-|
-|--28:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  27:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 100, ss_quantity >= 81
-|     row-size=8B cardinality=288.04K
-|
-43:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=108B cardinality=1
-|
-|--26:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  25:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 100, ss_quantity >= 81
-|     row-size=4B cardinality=288.04K
-|
-42:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=100B cardinality=1
-|
-|--24:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  23:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 80, ss_quantity >= 61
-|     row-size=8B cardinality=288.04K
-|
-41:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=92B cardinality=1
-|
-|--22:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  21:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 80, ss_quantity >= 61
-|     row-size=8B cardinality=288.04K
-|
-40:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=84B cardinality=1
-|
-|--20:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  19:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 80, ss_quantity >= 61
-|     row-size=4B cardinality=288.04K
-|
-39:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=76B cardinality=1
-|
-|--18:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  17:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 60, ss_quantity >= 41
-|     row-size=8B cardinality=288.04K
-|
-38:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=68B cardinality=1
-|
-|--16:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  15:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 60, ss_quantity >= 41
-|     row-size=8B cardinality=288.04K
-|
-37:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=60B cardinality=1
-|
-|--14:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  13:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 60, ss_quantity >= 41
-|     row-size=4B cardinality=288.04K
-|
-36:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=52B cardinality=1
-|
-|--12:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  11:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 40, ss_quantity >= 21
-|     row-size=8B cardinality=288.04K
-|
-35:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=44B cardinality=1
-|
-|--10:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  09:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 40, ss_quantity >= 21
-|     row-size=8B cardinality=288.04K
-|
-34:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=36B cardinality=1
-|
-|--08:AGGREGATE [FINALIZE]
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  07:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 40, ss_quantity >= 21
-|     row-size=4B cardinality=288.04K
-|
-33:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=28B cardinality=1
-|
-|--06:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  05:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 20, ss_quantity >= 1
-|     row-size=8B cardinality=288.04K
-|
-32:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=20B cardinality=1
-|
-|--04:AGGREGATE [FINALIZE]
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  03:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 20, ss_quantity >= 1
-|     row-size=8B cardinality=288.04K
-|
-31:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=12B cardinality=1
-|
-|--00:SCAN HDFS [tpcds.reason]
-|     HDFS partitions=1/1 files=1 size=1.31KB
-|     predicates: r_reason_sk = 1
-|     row-size=4B cardinality=1
-|
-02:AGGREGATE [FINALIZE]
-|  output: count(*)
-|  row-size=8B cardinality=1
-|
-01:SCAN HDFS [tpcds.store_sales]
-   HDFS partitions=1824/1824 files=1824 size=346.60MB
-   predicates: ss_quantity <= 20, ss_quantity >= 1
-   row-size=4B cardinality=288.04K
----- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=120.01MB Threads=47
-Per-Host Resource Estimates: Memory=2.20GB
-PLAN-ROOT SINK
-|
-45:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=124B cardinality=1
-|
-|--90:EXCHANGE [UNPARTITIONED]
-|  |
-|  89:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  88:EXCHANGE [UNPARTITIONED]
-|  |
-|  30:AGGREGATE
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  29:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 100, ss_quantity >= 81
-|     row-size=8B cardinality=288.04K
-|
-44:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=116B cardinality=1
-|
-|--87:EXCHANGE [UNPARTITIONED]
-|  |
-|  86:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  85:EXCHANGE [UNPARTITIONED]
-|  |
-|  28:AGGREGATE
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  27:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 100, ss_quantity >= 81
-|     row-size=8B cardinality=288.04K
-|
-43:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=108B cardinality=1
-|
-|--84:EXCHANGE [UNPARTITIONED]
-|  |
-|  83:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  82:EXCHANGE [UNPARTITIONED]
-|  |
-|  26:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  25:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 100, ss_quantity >= 81
-|     row-size=4B cardinality=288.04K
-|
-42:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=100B cardinality=1
-|
-|--81:EXCHANGE [UNPARTITIONED]
-|  |
-|  80:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  79:EXCHANGE [UNPARTITIONED]
-|  |
-|  24:AGGREGATE
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  23:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 80, ss_quantity >= 61
-|     row-size=8B cardinality=288.04K
-|
-41:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=92B cardinality=1
-|
-|--78:EXCHANGE [UNPARTITIONED]
-|  |
-|  77:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  76:EXCHANGE [UNPARTITIONED]
-|  |
-|  22:AGGREGATE
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  21:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 80, ss_quantity >= 61
-|     row-size=8B cardinality=288.04K
-|
-40:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=84B cardinality=1
-|
-|--75:EXCHANGE [UNPARTITIONED]
-|  |
-|  74:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  73:EXCHANGE [UNPARTITIONED]
-|  |
-|  20:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  19:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 80, ss_quantity >= 61
-|     row-size=4B cardinality=288.04K
-|
-39:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=76B cardinality=1
-|
-|--72:EXCHANGE [UNPARTITIONED]
-|  |
-|  71:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  70:EXCHANGE [UNPARTITIONED]
-|  |
-|  18:AGGREGATE
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  17:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 60, ss_quantity >= 41
-|     row-size=8B cardinality=288.04K
-|
-38:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=68B cardinality=1
-|
-|--69:EXCHANGE [UNPARTITIONED]
-|  |
-|  68:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  67:EXCHANGE [UNPARTITIONED]
-|  |
-|  16:AGGREGATE
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  15:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 60, ss_quantity >= 41
-|     row-size=8B cardinality=288.04K
-|
-37:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=60B cardinality=1
-|
-|--66:EXCHANGE [UNPARTITIONED]
-|  |
-|  65:AGGREGATE [FINALIZE]
-|  |  output: count:merge(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  64:EXCHANGE [UNPARTITIONED]
-|  |
-|  14:AGGREGATE
-|  |  output: count(*)
-|  |  row-size=8B cardinality=1
-|  |
-|  13:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 60, ss_quantity >= 41
-|     row-size=4B cardinality=288.04K
-|
-36:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=52B cardinality=1
-|
-|--63:EXCHANGE [UNPARTITIONED]
-|  |
-|  62:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  61:EXCHANGE [UNPARTITIONED]
-|  |
-|  12:AGGREGATE
-|  |  output: avg(ss_net_profit)
-|  |  row-size=8B cardinality=1
-|  |
-|  11:SCAN HDFS [tpcds.store_sales]
-|     HDFS partitions=1824/1824 files=1824 size=346.60MB
-|     predicates: ss_quantity <= 40, ss_quantity >= 21
-|     row-size=8B cardinality=288.04K
-|
-35:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=44B cardinality=1
-|
-|--60:EXCHANGE [UNPARTITIONED]
-|  |
-|  59:AGGREGATE [FINALIZE]
-|  |  output: avg:merge(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  58:EXCHANGE [UNPARTITIONED]
-|  |
-|  10:AGGREGATE
-|  |  output: avg(ss_ext_discount_amt)
-|  |  row-size=8B cardinality=1
-|  |
-|  09:SCAN HDFS [tpcds.store_sales]
... 99717 lines suppressed ...