You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2020/09/01 16:11:15 UTC

[impala] branch master updated (f85dbff -> 69d0d0a)

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

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


    from f85dbff  IMPALA-10030: Remove unnecessary jar dependencies
     new f4273a4  IMPALA-7310: Partial fix for NDV cardinality with NULLs.
     new 69d0d0a  IMPALA-10087: IMPALA-6050 causes alluxio not to be supported

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/impala/analysis/SlotRef.java   |  24 +-
 .../org/apache/impala/common/FileSystemUtil.java   |   4 +-
 .../impala/analysis/ExprCardinalityTest.java       |  22 +-
 .../org/apache/impala/analysis/ExprNdvTest.java    |  16 +-
 .../apache/impala/common/FileSystemUtilTest.java   |   8 +
 .../org/apache/impala/planner/CardinalityTest.java |  41 +-
 .../queries/PlannerTest/tpcds/tpcds-q04.test       | 840 +++++++++++----------
 .../queries/PlannerTest/tpcds/tpcds-q11.test       | 636 ++++++++--------
 8 files changed, 806 insertions(+), 785 deletions(-)


[impala] 02/02: IMPALA-10087: IMPALA-6050 causes alluxio not to be supported

Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 69d0d0af471f7013627ead3dff86a402ebc263a6
Author: abeltian <ab...@tencent.com>
AuthorDate: Fri Aug 28 15:07:20 2020 +0800

    IMPALA-10087: IMPALA-6050 causes alluxio not to be supported
    
    This change adds file type support for alluxio.
    Alluxio URLs have a different prefix
    such as:alluxio://zk@zk-1:2181,zk-2:2181,zk-3:2181/path/
    
    Testing:
    Add unit test for alluxio file system type checks.
    
    Change-Id: Id92ec9cb0ee241a039fe4a96e1bc2ab3eaaf8f77
    Reviewed-on: http://gerrit.cloudera.org:8080/16379
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 fe/src/main/java/org/apache/impala/common/FileSystemUtil.java     | 4 +++-
 fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java | 8 ++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/fe/src/main/java/org/apache/impala/common/FileSystemUtil.java b/fe/src/main/java/org/apache/impala/common/FileSystemUtil.java
index 38b1ddd..b4a41b2 100644
--- a/fe/src/main/java/org/apache/impala/common/FileSystemUtil.java
+++ b/fe/src/main/java/org/apache/impala/common/FileSystemUtil.java
@@ -422,7 +422,8 @@ public class FileSystemUtil {
     HDFS,
     LOCAL,
     S3,
-    OZONE;
+    OZONE,
+    ALLUXIO;
 
     private static final Map<String, FsType> SCHEME_TO_FS_MAPPING =
         ImmutableMap.<String, FsType>builder()
@@ -433,6 +434,7 @@ public class FileSystemUtil {
             .put("hdfs", HDFS)
             .put("s3a", S3)
             .put("o3fs", OZONE)
+            .put("alluxio", ALLUXIO)
             .build();
 
     /**
diff --git a/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java b/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java
index 030961a..da5e11e 100644
--- a/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java
+++ b/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java
@@ -21,6 +21,7 @@ import static org.apache.impala.common.FileSystemUtil.HIVE_TEMP_FILE_PREFIX;
 import static org.apache.impala.common.FileSystemUtil.isIgnoredDir;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
 
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.Path;
@@ -84,6 +85,13 @@ public class FileSystemUtilTest {
     assertFalse(isIgnoredDir(new Path(TEST_TABLE_PATH + "/part=100/datafile")));
   }
 
+  @Test
+  public void testAlluxioFsType() {
+    Path path = new Path("alluxio://zk@zk-1:2181,zk-2:2181,zk-3:2181/path/");
+    assertEquals(FileSystemUtil.FsType.ALLUXIO,
+        FileSystemUtil.FsType.getFsType(path.toUri().getScheme()));
+  }
+
   private boolean testIsInIgnoredDirectory(Path input) {
     return testIsInIgnoredDirectory(input, true);
   }


[impala] 01/02: IMPALA-7310: Partial fix for NDV cardinality with NULLs.

Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f4273a40fe2e2ab0806f0324ecf33a25b3df6279
Author: Shant Hovsepian <sh...@cloudera.com>
AuthorDate: Thu Aug 20 23:16:27 2020 -0400

    IMPALA-7310: Partial fix for NDV cardinality with NULLs.
    
    This fix just handles the case where a column's cardinality is zero
    however it's nullable and we have null stats to indicate there are null
    values, therefore we adjust the cardinality from 0 to 1.
    
    The cardinality of zero was especially problematic when calculating
    cardinalities for multiple predicates with multiplication. The 0 would
    propagate up the plan tree and result in poor plan choices such as
    always using broadcast joins where shuffle would've been more optimal.
    
    Testing:
      * 26 Node TPC-DS 30TB run had better plans for Q4 and Q11
        - Q4 172s -> 80s
        - Q11 103s -> 77s
      * CardinalityTest
      * TpcdsPlannerTest
    
    Change-Id: Iec967053b4991f8c67cde62adf003cbd3f429032
    Reviewed-on: http://gerrit.cloudera.org:8080/16349
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 .../java/org/apache/impala/analysis/SlotRef.java   |  24 +-
 .../impala/analysis/ExprCardinalityTest.java       |  22 +-
 .../org/apache/impala/analysis/ExprNdvTest.java    |  16 +-
 .../org/apache/impala/planner/CardinalityTest.java |  41 +-
 .../queries/PlannerTest/tpcds/tpcds-q04.test       | 840 +++++++++++----------
 .../queries/PlannerTest/tpcds/tpcds-q11.test       | 636 ++++++++--------
 6 files changed, 795 insertions(+), 784 deletions(-)

diff --git a/fe/src/main/java/org/apache/impala/analysis/SlotRef.java b/fe/src/main/java/org/apache/impala/analysis/SlotRef.java
index e9911f2..22a381b 100644
--- a/fe/src/main/java/org/apache/impala/analysis/SlotRef.java
+++ b/fe/src/main/java/org/apache/impala/analysis/SlotRef.java
@@ -73,7 +73,7 @@ public class SlotRef extends Expr {
     evalCost_ = SLOT_REF_COST;
     String alias = desc.getParent().getAlias();
     label_ = (alias != null ? alias + "." : "") + desc.getLabel();
-    numDistinctValues_ = desc.getStats().getNumDistinctValues();
+    numDistinctValues_ = adjustNumDistinctValues();
     analysisDone();
   }
 
@@ -88,6 +88,26 @@ public class SlotRef extends Expr {
     type_ = other.type_;
   }
 
+  /**
+   * Applies an adjustment to an ndv of zero with nulls. NULLs aren't accounted for in the
+   * ndv during stats computation. When computing cardinality in the cases where ndv is
+   * zero and the slot is nullable we set the ndv to one to prevent the cardinalities from
+   * zeroing out and leading to bad plans. Addressing IMPALA-7310 would include an extra
+   * ndv for whenever nulls are present in general, not just in the case of a zero ndv.
+   */
+  private long adjustNumDistinctValues() {
+    Preconditions.checkNotNull(desc_);
+    Preconditions.checkNotNull(desc_.getStats());
+
+    long numDistinctValues = desc_.getStats().getNumDistinctValues();
+    // Adjust an ndv of zero to 1 if stats indicate there are null values.
+    if (numDistinctValues == 0 && desc_.getIsNullable() &&
+        (desc_.getStats().hasNulls() || !desc_.getStats().hasNullsStats())) {
+      numDistinctValues = 1;
+    }
+    return numDistinctValues;
+  }
+
   @Override
   protected void analyzeImpl(Analyzer analyzer) throws AnalysisException {
     // TODO: derived slot refs (e.g., star-expanded) will not have rawPath set.
@@ -114,7 +134,7 @@ public class SlotRef extends Expr {
       throw new UnsupportedFeatureException("Unsupported type in '" + toSql() + "'.");
     }
 
-    numDistinctValues_ = desc_.getStats().getNumDistinctValues();
+    numDistinctValues_ = adjustNumDistinctValues();
     FeTable rootTable = resolvedPath.getRootTable();
     if (rootTable != null && rootTable.getNumRows() > 0) {
       // The NDV cannot exceed the #rows in the table.
diff --git a/fe/src/test/java/org/apache/impala/analysis/ExprCardinalityTest.java b/fe/src/test/java/org/apache/impala/analysis/ExprCardinalityTest.java
index ce1e326..deae557 100644
--- a/fe/src/test/java/org/apache/impala/analysis/ExprCardinalityTest.java
+++ b/fe/src/test/java/org/apache/impala/analysis/ExprCardinalityTest.java
@@ -208,8 +208,7 @@ public class ExprCardinalityTest {
 
     // Stats, with null values
     verifySelectCol("nullrows", "id", 26, 0);
-    // Bug: NDV should be 1 to include nulls
-    verifySelectCol("nullrows", "null_str", 0, 26);
+    verifySelectCol("nullrows", "null_str", 1, 26);
     verifySelectCol("nullrows", "group_str", 6, 0);
     verifySelectCol("nullrows", "some_nulls", 6, 20);
     // Oddly, boolean columns DO include nulls in NDV.
@@ -262,10 +261,9 @@ public class ExprCardinalityTest {
     verifySelectExpr("alltypes", "int_col = 10", 3, 1.0/10);
 
     verifySelectExpr("nullrows", "id = 'foo'", 3, 1.0/26);
-    // Bug: All nulls, so NDV should = 1, so Sel should be 1.0/1
-    //verifySelectExpr("nullrows", "c = 'foo'", 3, 1.0/1);
-    verifySelectExpr("nullrows", "null_str = 'foo'", 3, -1);
+    verifySelectExpr("nullrows", "null_str = 'foo'", 3, 1.0/1);
     verifySelectExpr("nullrows", "group_str = 'foo'", 3, 1.0/6);
+    // Bug: nulls should count to NDV
     //verifySelectExpr("nullrows", "some_nulls = 'foo'", 3, 1.0/7);
     verifySelectExpr("nullrows", "some_nulls = 'foo'", 3, 1.0/6);
 
@@ -297,9 +295,8 @@ public class ExprCardinalityTest {
     //verifySelectExpr("nullrows", "id is not distinct from null", 2, 0);
     verifySelectExpr("nullrows", "id is not distinct from null", 3, 1.0/26);
     // Bug: All nulls, so NDV should = 1, so Sel should be 1.0/1
-    //verifySelectExpr("nullrows", "null_str is not distinct from 'foo'", 2, 1.0/1);
-    verifySelectExpr("nullrows", "null_str is not distinct from 'foo'", 3, -1);
-    verifySelectExpr("nullrows", "null_str is not distinct from null", 3, -1);
+    verifySelectExpr("nullrows", "null_str is not distinct from 'foo'", 3, 1.0/1);
+    verifySelectExpr("nullrows", "null_str is not distinct from null", 3, 1.0/1);
     verifySelectExpr("nullrows", "group_str is not distinct from 'foo'", 3, 1.0/6);
     //verifySelectExpr("nullrows", "group_str is not distinct from null", 2, 1);
     verifySelectExpr("nullrows", "group_str is not distinct from null", 3, 1.0/6);
@@ -472,9 +469,7 @@ public class ExprCardinalityTest {
         "int_col in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)", 3, 1);
 
     verifySelectExpr("nullrows", "id in ('a', 'b', 'c')", 3, 3.0/26);
-    // Bug: Why -1?
-    //verifySelectExpr("nullrows", "null_str in ('a', 'b', 'c')", 3, 1);
-    verifySelectExpr("nullrows", "null_str in ('a', 'b', 'c')", 3, -1);
+    verifySelectExpr("nullrows", "null_str in ('a', 'b', 'c')", 3, 1);
     verifySelectExpr("nullrows", "group_str in ('a', 'b', 'c')", 3, 3.0/6);
     //verifySelectExpr("nullrows", "some_nulls in ('a', 'b', 'c')", 3, 3.0/7);
     verifySelectExpr("nullrows", "some_nulls in ('a', 'b', 'c')", 3, 3.0/6);
@@ -501,10 +496,9 @@ public class ExprCardinalityTest {
         "int_col not in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)", 3, 0);
 
     verifySelectExpr("nullrows", "id not in ('a', 'b', 'c')", 3, 1 - 3.0/26);
-    // Bug: Why -1?
-    //verifySelectExpr("nullrows", "null_str not in ('a', 'b', 'c')", 3, 1);
-    verifySelectExpr("nullrows", "null_str not in ('a', 'b', 'c')", 3, -1);
+    verifySelectExpr("nullrows", "null_str not in ('a', 'b', 'c')", 3, 0);
     verifySelectExpr("nullrows", "group_str not in ('a', 'b', 'c')", 3, 1 - 3.0/6);
+    // Bug: NULL should count as ndv
     //verifySelectExpr("nullrows", "some_nulls not in ('a', 'b', 'c')", 3, 1 - 3.0/7);
     verifySelectExpr("nullrows", "some_nulls not in ('a', 'b', 'c')", 3, 1 - 3.0/6);
 
diff --git a/fe/src/test/java/org/apache/impala/analysis/ExprNdvTest.java b/fe/src/test/java/org/apache/impala/analysis/ExprNdvTest.java
index 8a573a6..7e8418c 100644
--- a/fe/src/test/java/org/apache/impala/analysis/ExprNdvTest.java
+++ b/fe/src/test/java/org/apache/impala/analysis/ExprNdvTest.java
@@ -173,24 +173,20 @@ public class ExprNdvTest extends FrontendTestBase {
   @Test
   public void testNulls() throws ImpalaException {
     // A table with nulls for which stats have been computed
-    // NDV(a) = 26
+    // NDV(id) = 26
     verifyNdvStmt("SELECT id FROM functional.nullrows", 26);
-    // NDV(f) = 6
+    // NDV(some_nulls) = 6
     verifyNdvStmt("SELECT some_nulls FROM functional.nullrows", 6);
-    // NDV(c) = 0 (all nulls), but add 1 for nulls
+    // NDV(null_str) = 0 (all nulls), but add 1 for nulls
+    verifyNdvStmt("SELECT null_str FROM functional.nullrows", 1);
+    // NDV(blanks) = 1, add 1 for nulls
     // Bug: See IMPALA-7310, IMPALA-8094
-    //verifyNdvStmt("SELECT null_str FROM functional.nullrows", 1);
-    verifyNdvStmt("SELECT null_str FROM functional.nullrows", 0);
-    // NDV(b) = 1, add 1 for nulls
-    // Bug: Same as above
     //verifyNdvStmt("SELECT blanks FROM functional.nullrows", 2);
     verifyNdvStmt("SELECT blank FROM functional.nullrows", 1);
 
     // Same schema, one row
     verifyNdvStmt("SELECT a FROM functional.nulltable", 1);
-    // Bug: Same as above
-    //verifyNdvStmt("SELECT c FROM functional.nulltable", 1);
-    verifyNdvStmt("SELECT c FROM functional.nulltable", 0);
+    verifyNdvStmt("SELECT c FROM functional.nulltable", 1);
 
     // 11K rows, no stats
     // Bug: Should come up with some estimate from size
diff --git a/fe/src/test/java/org/apache/impala/planner/CardinalityTest.java b/fe/src/test/java/org/apache/impala/planner/CardinalityTest.java
index c8c9d7f..178c448 100644
--- a/fe/src/test/java/org/apache/impala/planner/CardinalityTest.java
+++ b/fe/src/test/java/org/apache/impala/planner/CardinalityTest.java
@@ -117,13 +117,9 @@ public class CardinalityTest extends PlannerTestBase {
     // f repeats for 5 rows, so NDV=7, 26/7 =~ 4
     verifyCardinality("SELECT null_int FROM functional.nullrows WHERE group_str = 'x'",
         4);
-    // Revised use of nulls per IMPALA-7310
     // null_str is all nulls, NDV = 1, selectivity = 1/1, cardinality = 26
-    // BUG: At present selectivity is assumed to be 0.1
-    //verifyCardinality(
-    //      "SELECT null_int FROM functional.nullrows WHERE null_str = 'x'", 26);
-    verifyCardinality("SELECT null_int FROM functional.nullrows WHERE null_str = 'x'",
-        3);
+    verifyCardinality(
+          "SELECT null_int FROM functional.nullrows WHERE null_str = 'x'", 26);
   }
 
   @Test
@@ -131,23 +127,17 @@ public class CardinalityTest extends PlannerTestBase {
     String baseStmt = "SELECT COUNT(*) " +
                       "FROM functional.nullrows " +
                       "GROUP BY ";
-    // NDV(a) = 26
+    // NDV(id) = 26
     verifyCardinality(baseStmt + "id", 26);
-    // f has NDV=3
+    // group_str has NDV=3
     verifyCardinality(baseStmt + "group_str", 6);
-    // b has NDV=1 (plus 1 for nulls)
-    // Bug: Nulls not counted in NDV
-    //verifyCardinality(baseStmt + "blank", 2);
+    // blank has NDV=1 (and no nulls)
     verifyCardinality(baseStmt + "blank", 1);
-    // c is all nulls
-    // Bug: Nulls not counted in NDV
-    //verifyCardinality(baseStmt + "null_str", 1);
-    verifyCardinality(baseStmt + "null_str", 0);
-    // NDV(a) * ndv(c) = 26 * 1 = 26
-    // Bug: Nulls not counted in NDV
-    //verifyCardinality(baseStmt + "id, null_str", 26);
-    verifyCardinality(baseStmt + "id, null_str", 0);
-    // NDV(a) * ndv(f) = 26 * 3 = 78, capped at row count = 26
+    // null_str is all nulls
+    verifyCardinality(baseStmt + "null_str", 1);
+    // NDV(id) * ndv(null_str) = 26 * 1 = 26
+    verifyCardinality(baseStmt + "id, null_str", 26);
+    // NDV(id) * ndv(group_str) = 26 * 3 = 78, capped at row count = 26
     verifyCardinality(baseStmt + "id, group_str", 26);
   }
 
@@ -188,14 +178,9 @@ public class CardinalityTest extends PlannerTestBase {
     // group_str has NDV=6
     verifyCardinality(baseStmt + "group_str", 6);
     // null_str is all nulls
-    // Bug: Nulls not counted in NDV
-    //verifyCardinality(baseStmt + "null_str", 1);
-    verifyCardinality(baseStmt + "null_str", 0);
-    // NDV(id) = 26 * ndv(null_str) = 1
-    // Bug: Nulls not counted in NDV
-    // Here and for similar bugs: see IMPALA-7310 and IMPALA-8094
-    //verifyCardinality(baseStmt + "id, null_str", 26);
-    verifyCardinality(baseStmt + "nullrows.id, null_str", 0);
+    verifyCardinality(baseStmt + "null_str", 1);
+    // NDV(id) = 26 * ndv(null_str) = 1 ; 26 * 1 = 26
+    verifyCardinality(baseStmt + "nullrows.id, null_str", 26);
     // NDV(id) = 26 * ndv(group_str) = 156
     // Planner does not know that id determines group_str
     verifyCardinality(baseStmt + "nullrows.id, group_str", 156);
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q04.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q04.test
index 9ba5cad..5858d5b 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q04.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q04.test
@@ -119,44 +119,44 @@ ORDER BY t_s_secyear.customer_id,
          t_s_secyear.customer_preferred_cust_flag
 LIMIT 100;
 ---- PLAN
-Max Per-Host Resource Reservation: Memory=237.31MB Threads=19
-Per-Host Resource Estimates: Memory=2.10GB
+Max Per-Host Resource Reservation: Memory=377.94MB Threads=19
+Per-Host Resource Estimates: Memory=2.12GB
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=2.10GB mem-reservation=237.31MB thread-reservation=19 runtime-filters-memory=10.00MB
+|  Per-Host Resources: mem-estimate=2.12GB mem-reservation=377.94MB thread-reservation=19 runtime-filters-memory=10.00MB
 PLAN-ROOT SINK
 |  output exprs: customer_id, customer_first_name, customer_last_name, customer_preferred_cust_flag
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
 |
 47:TOP-N [LIMIT=100]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
-|  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=84 row-size=77B cardinality=0
-|  in pipelines: 47(GETNEXT), 06(OPEN)
+|  mem-estimate=7.52KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=84 row-size=77B cardinality=100
+|  in pipelines: 47(GETNEXT), 13(OPEN)
 |
 46:HASH JOIN [INNER JOIN]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54,68,82 row-size=313B cardinality=0
-|  in pipelines: 06(GETNEXT), 41(OPEN)
+|  runtime filters: RF000[bloom] <- customer_id
+|  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
+|  tuple-ids=26,12,40,54,68,82 row-size=313B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 41(OPEN)
 |
 |--35:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=82 row-size=44B cardinality=0
+|  |  tuple-ids=82 row-size=44B cardinality=148.00K
 |  |  in pipelines: 41(GETNEXT)
 |  |
 |  41:AGGREGATE [FINALIZE]
 |  |  output: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 41(GETNEXT), 36(OPEN)
 |  |
 |  40:HASH JOIN [INNER JOIN]
 |  |  hash predicates: c_customer_sk = ws_bill_customer_sk
 |  |  fk/pk conjuncts: c_customer_sk = ws_bill_customer_sk
-|  |  runtime filters: RF030[bloom] <- ws_bill_customer_sk
 |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
 |  |  tuple-ids=78,79,80 row-size=185B cardinality=148.00K
 |  |  in pipelines: 36(GETNEXT), 37(OPEN)
@@ -195,7 +195,6 @@ PLAN-ROOT SINK
 |  |
 |  36:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF030[bloom] -> c_customer_sk
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -207,27 +206,27 @@ PLAN-ROOT SINK
 45:HASH JOIN [INNER JOIN]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
+|  runtime filters: RF002[bloom] <- customer_id
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54,68 row-size=269B cardinality=0
-|  in pipelines: 06(GETNEXT), 34(OPEN)
+|  tuple-ids=26,12,40,54,68 row-size=269B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 34(OPEN)
 |
 |--28:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=68 row-size=44B cardinality=0
+|  |  tuple-ids=68 row-size=44B cardinality=14.80K
 |  |  in pipelines: 34(GETNEXT)
 |  |
 |  34:AGGREGATE [FINALIZE]
 |  |  output: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2)) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=14.80K
 |  |  in pipelines: 34(GETNEXT), 29(OPEN)
 |  |
 |  33:HASH JOIN [INNER JOIN]
 |  |  hash predicates: c_customer_sk = ws_bill_customer_sk
 |  |  fk/pk conjuncts: c_customer_sk = ws_bill_customer_sk
-|  |  runtime filters: RF026[bloom] <- ws_bill_customer_sk
 |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
 |  |  tuple-ids=64,65,66 row-size=185B cardinality=148.00K
 |  |  in pipelines: 29(GETNEXT), 30(OPEN)
@@ -266,7 +265,7 @@ PLAN-ROOT SINK
 |  |
 |  29:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF026[bloom] -> c_customer_sk
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -279,20 +278,21 @@ PLAN-ROOT SINK
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54 row-size=225B cardinality=0
-|  in pipelines: 06(GETNEXT), 27(OPEN)
+|  runtime filters: RF004[bloom] <- customer_id
+|  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
+|  tuple-ids=26,12,40,54 row-size=225B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 27(OPEN)
 |
 |--21:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54 row-size=44B cardinality=0
+|  |  tuple-ids=54 row-size=44B cardinality=294.63K
 |  |  in pipelines: 27(GETNEXT)
 |  |
 |  27:AGGREGATE [FINALIZE]
 |  |  output: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=52.27MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 27(GETNEXT), 22(OPEN)
 |  |
 |  26:HASH JOIN [INNER JOIN]
@@ -336,6 +336,7 @@ PLAN-ROOT SINK
 |  |
 |  22:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -347,21 +348,22 @@ PLAN-ROOT SINK
 43:HASH JOIN [INNER JOIN]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40 row-size=181B cardinality=0
-|  in pipelines: 06(GETNEXT), 20(OPEN)
+|  runtime filters: RF006[bloom] <- customer_id
+|  mem-estimate=2.88MB mem-reservation=2.88MB spill-buffer=128.00KB thread-reservation=0
+|  tuple-ids=26,12,40 row-size=181B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 20(OPEN)
 |
 |--14:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=40 row-size=44B cardinality=0
+|  |  tuple-ids=40 row-size=44B cardinality=29.46K
 |  |  in pipelines: 20(GETNEXT)
 |  |
 |  20:AGGREGATE [FINALIZE]
 |  |  output: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2)) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=52.27MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=29.46K
 |  |  in pipelines: 20(GETNEXT), 15(OPEN)
 |  |
 |  19:HASH JOIN [INNER JOIN]
@@ -405,6 +407,7 @@ PLAN-ROOT SINK
 |  |
 |  15:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -416,141 +419,141 @@ PLAN-ROOT SINK
 42:HASH JOIN [INNER JOIN]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26 row-size=137B cardinality=0
-|  in pipelines: 06(GETNEXT), 13(OPEN)
+|  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
+|  tuple-ids=26,12 row-size=137B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 06(OPEN)
 |
-|--07:UNION
+|--00:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=26 row-size=93B cardinality=0
-|  |  in pipelines: 13(GETNEXT)
+|  |  tuple-ids=12 row-size=44B cardinality=58.90K
+|  |  in pipelines: 06(GETNEXT)
 |  |
-|  13:AGGREGATE [FINALIZE]
+|  06:AGGREGATE [FINALIZE]
 |  |  output: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / CAST(2 AS DECIMAL(3,0)))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 13(GETNEXT), 09(OPEN)
+|  |  having: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2) > CAST(0 AS DECIMAL(3,0))
+|  |  mem-estimate=104.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=58.90K
+|  |  in pipelines: 06(GETNEXT), 02(OPEN)
 |  |
-|  12:HASH JOIN [INNER JOIN]
+|  05:HASH JOIN [INNER JOIN]
 |  |  hash predicates: ss_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
-|  |  runtime filters: RF014[bloom] <- c_customer_sk
 |  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
-|  |  tuple-ids=15,16,14 row-size=185B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 08(OPEN)
+|  |  tuple-ids=1,2,0 row-size=185B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 01(OPEN)
 |  |
-|  |--08:SCAN HDFS [tpcds_parquet.customer]
+|  |--01:SCAN HDFS [tpcds_parquet.customer]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |  |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|  |     tuple-ids=14 row-size=153B cardinality=100.00K
-|  |     in pipelines: 08(GETNEXT)
+|  |     tuple-ids=0 row-size=153B cardinality=100.00K
+|  |     in pipelines: 01(GETNEXT)
 |  |
-|  11:HASH JOIN [INNER JOIN]
+|  04:HASH JOIN [INNER JOIN]
 |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  runtime filters: RF016[bloom] <- d_date_sk
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=15,16 row-size=32B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 10(OPEN)
+|  |  tuple-ids=1,2 row-size=32B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 03(OPEN)
 |  |
-|  |--10:SCAN HDFS [tpcds_parquet.date_dim]
+|  |--03:SCAN HDFS [tpcds_parquet.date_dim]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|  |     tuple-ids=16 row-size=8B cardinality=373
-|  |     in pipelines: 10(GETNEXT)
+|  |     tuple-ids=2 row-size=8B cardinality=373
+|  |     in pipelines: 03(GETNEXT)
 |  |
-|  09:SCAN HDFS [tpcds_parquet.store_sales]
+|  02:SCAN HDFS [tpcds_parquet.store_sales]
 |     HDFS partitions=1824/1824 files=1824 size=201.02MB
-|     runtime filters: RF016[bloom] -> ss_sold_date_sk, RF014[bloom] -> ss_customer_sk
+|     runtime filters: RF016[bloom] -> ss_sold_date_sk
 |     stored statistics:
 |       table: rows=2.88M size=201.02MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |     mem-estimate=80.00MB mem-reservation=4.00MB thread-reservation=1
-|     tuple-ids=15 row-size=24B cardinality=2.88M
-|     in pipelines: 09(GETNEXT)
+|     tuple-ids=1 row-size=24B cardinality=2.88M
+|     in pipelines: 02(GETNEXT)
 |
-00:UNION
+07:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=12 row-size=44B cardinality=0
-|  in pipelines: 06(GETNEXT)
+|  tuple-ids=26 row-size=93B cardinality=589.03K
+|  in pipelines: 13(GETNEXT)
 |
-06:AGGREGATE [FINALIZE]
+13:AGGREGATE [FINALIZE]
 |  output: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / CAST(2 AS DECIMAL(3,0)))
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  having: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2) > CAST(0 AS DECIMAL(3,0))
-|  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 06(GETNEXT), 02(OPEN)
+|  mem-estimate=104.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 09(OPEN)
 |
-05:HASH JOIN [INNER JOIN]
+12:HASH JOIN [INNER JOIN]
 |  hash predicates: ss_customer_sk = c_customer_sk
 |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
-|  runtime filters: RF010[bloom] <- c_customer_sk
 |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
-|  tuple-ids=1,2,0 row-size=185B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 01(OPEN)
+|  tuple-ids=15,16,14 row-size=185B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 08(OPEN)
 |
-|--01:SCAN HDFS [tpcds_parquet.customer]
+|--08:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|     tuple-ids=0 row-size=153B cardinality=100.00K
-|     in pipelines: 01(GETNEXT)
+|     tuple-ids=14 row-size=153B cardinality=100.00K
+|     in pipelines: 08(GETNEXT)
 |
-04:HASH JOIN [INNER JOIN]
+11:HASH JOIN [INNER JOIN]
 |  hash predicates: ss_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  runtime filters: RF012[bloom] <- d_date_sk
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=1,2 row-size=32B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 03(OPEN)
+|  tuple-ids=15,16 row-size=32B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 10(OPEN)
 |
-|--03:SCAN HDFS [tpcds_parquet.date_dim]
+|--10:SCAN HDFS [tpcds_parquet.date_dim]
 |     HDFS partitions=1/1 files=1 size=2.15MB
-|     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
-|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|     tuple-ids=2 row-size=8B cardinality=373
-|     in pipelines: 03(GETNEXT)
+|     tuple-ids=16 row-size=8B cardinality=373
+|     in pipelines: 10(GETNEXT)
 |
-02:SCAN HDFS [tpcds_parquet.store_sales]
+09:SCAN HDFS [tpcds_parquet.store_sales]
    HDFS partitions=1824/1824 files=1824 size=201.02MB
-   runtime filters: RF012[bloom] -> ss_sold_date_sk, RF010[bloom] -> ss_customer_sk
+   runtime filters: RF012[bloom] -> ss_sold_date_sk
    stored statistics:
      table: rows=2.88M size=201.02MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
    mem-estimate=80.00MB mem-reservation=4.00MB thread-reservation=1
-   tuple-ids=1 row-size=24B cardinality=2.88M
-   in pipelines: 02(GETNEXT)
+   tuple-ids=15 row-size=24B cardinality=2.88M
+   in pipelines: 09(GETNEXT)
 ---- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=232.94MB Threads=49
-Per-Host Resource Estimates: Memory=2.32GB
+Max Per-Host Resource Reservation: Memory=652.69MB Threads=49
+Per-Host Resource Estimates: Memory=2.78GB
 F36:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=242.89KB mem-reservation=0B thread-reservation=1
+|  Per-Host Resources: mem-estimate=26.23KB mem-reservation=0B thread-reservation=1
 PLAN-ROOT SINK
 |  output exprs: customer_id, customer_first_name, customer_last_name, customer_preferred_cust_flag
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
@@ -558,57 +561,58 @@ PLAN-ROOT SINK
 83:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
 |  limit: 100
-|  mem-estimate=242.89KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=84 row-size=77B cardinality=0
+|  mem-estimate=26.23KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=84 row-size=77B cardinality=100
 |  in pipelines: 47(GETNEXT)
 |
 F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservation=1
+Per-Host Resources: mem-estimate=122.97MB mem-reservation=73.06MB thread-reservation=1 runtime-filters-memory=4.00MB
 47:TOP-N [LIMIT=100]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
-|  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=84 row-size=77B cardinality=0
+|  mem-estimate=7.52KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=84 row-size=77B cardinality=100
 |  in pipelines: 47(GETNEXT), 52(OPEN)
 |
 46:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54,68,82 row-size=313B cardinality=0
+|  runtime filters: RF000[bloom] <- customer_id
+|  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
+|  tuple-ids=26,12,40,54,68,82 row-size=313B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 81(OPEN)
 |
 |--82:EXCHANGE [BROADCAST]
-|  |  mem-estimate=96.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=82 row-size=44B cardinality=0
+|  |  mem-estimate=6.30MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=82 row-size=44B cardinality=148.00K
 |  |  in pipelines: 81(GETNEXT)
 |  |
 |  F35:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Host Resources: mem-estimate=10.34MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=44.34MB mem-reservation=34.00MB thread-reservation=1
 |  35:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=82 row-size=44B cardinality=0
+|  |  tuple-ids=82 row-size=44B cardinality=148.00K
 |  |  in pipelines: 81(GETNEXT)
 |  |
 |  81:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 81(GETNEXT), 37(OPEN)
 |  |
 |  80:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=346.23KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=10.34MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 37(GETNEXT)
 |  |
 |  F33:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=2 instances=2
-|  Per-Host Resources: mem-estimate=30.99MB mem-reservation=10.50MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=54.99MB mem-reservation=42.50MB thread-reservation=1
 |  41:AGGREGATE [STREAMING]
 |  |  output: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 37(GETNEXT)
 |  |
 |  40:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -684,42 +688,43 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 45:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
+|  runtime filters: RF002[bloom] <- customer_id
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54,68 row-size=269B cardinality=0
+|  tuple-ids=26,12,40,54,68 row-size=269B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 75(OPEN)
 |
 |--76:EXCHANGE [BROADCAST]
-|  |  mem-estimate=96.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=68 row-size=44B cardinality=0
+|  |  mem-estimate=731.94KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=68 row-size=44B cardinality=14.80K
 |  |  in pipelines: 75(GETNEXT)
 |  |
 |  F29:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Host Resources: mem-estimate=10.34MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=44.34MB mem-reservation=34.00MB thread-reservation=1
 |  28:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=68 row-size=44B cardinality=0
+|  |  tuple-ids=68 row-size=44B cardinality=14.80K
 |  |  in pipelines: 75(GETNEXT)
 |  |
 |  75:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2)) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=14.80K
 |  |  in pipelines: 75(GETNEXT), 30(OPEN)
 |  |
 |  74:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=346.23KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=10.34MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=148.00K
 |  |  in pipelines: 30(GETNEXT)
 |  |
 |  F27:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=2 instances=2
-|  Per-Host Resources: mem-estimate=30.99MB mem-reservation=10.50MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=54.99MB mem-reservation=42.50MB thread-reservation=1
 |  34:AGGREGATE [STREAMING]
 |  |  output: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=148.00K
 |  |  in pipelines: 30(GETNEXT)
 |  |
 |  33:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -735,9 +740,10 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |  |  in pipelines: 29(GETNEXT)
 |  |  |
 |  |  F26:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Host Resources: mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=2
+|  |  Per-Host Resources: mem-estimate=129.00MB mem-reservation=9.00MB thread-reservation=2 runtime-filters-memory=1.00MB
 |  |  29:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -796,47 +802,47 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54 row-size=225B cardinality=0
+|  runtime filters: RF004[bloom] <- customer_id
+|  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
+|  tuple-ids=26,12,40,54 row-size=225B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 69(OPEN)
 |
 |--70:EXCHANGE [BROADCAST]
-|  |  mem-estimate=144.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54 row-size=44B cardinality=0
+|  |  mem-estimate=10.14MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=54 row-size=44B cardinality=294.63K
 |  |  in pipelines: 69(GETNEXT)
 |  |
 |  F23:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=44.51MB mem-reservation=34.00MB thread-reservation=1
 |  21:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54 row-size=44B cardinality=0
+|  |  tuple-ids=54 row-size=44B cardinality=294.63K
 |  |  in pipelines: 69(GETNEXT)
 |  |
 |  69:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 69(GETNEXT), 23(OPEN)
 |  |
 |  68:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F21:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=32.77MB mem-reservation=11.50MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  Per-Host Resources: mem-estimate=55.77MB mem-reservation=42.50MB thread-reservation=1
 |  27:AGGREGATE [STREAMING]
 |  |  output: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  26:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash predicates: cs_bill_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: cs_bill_customer_sk = c_customer_sk
-|  |  runtime filters: RF022[bloom] <- c_customer_sk
 |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
 |  |  tuple-ids=47,48,46 row-size=185B cardinality=294.63K
 |  |  in pipelines: 23(GETNEXT), 22(OPEN)
@@ -847,9 +853,10 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |  |  in pipelines: 22(GETNEXT)
 |  |  |
 |  |  F20:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Host Resources: mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=2
+|  |  Per-Host Resources: mem-estimate=130.00MB mem-reservation=10.00MB thread-reservation=2 runtime-filters-memory=2.00MB
 |  |  22:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -864,7 +871,7 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F18:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=291.95MB mem-reservation=19.94MB thread-reservation=2 runtime-filters-memory=2.00MB
+|  Per-Host Resources: mem-estimate=290.95MB mem-reservation=18.94MB thread-reservation=2 runtime-filters-memory=1.00MB
 |  25:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: cs_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
@@ -895,7 +902,7 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |
 |  23:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
 |     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF024[bloom] -> cs_sold_date_sk, RF022[bloom] -> cs_bill_customer_sk
+|     runtime filters: RF024[bloom] -> cs_sold_date_sk
 |     stored statistics:
 |       table: rows=1.44M size=96.62MB
 |       columns: all
@@ -907,48 +914,48 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 43:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40 row-size=181B cardinality=0
+|  runtime filters: RF006[bloom] <- customer_id
+|  mem-estimate=2.88MB mem-reservation=2.88MB spill-buffer=128.00KB thread-reservation=0
+|  tuple-ids=26,12,40 row-size=181B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 63(OPEN)
 |
 |--64:EXCHANGE [BROADCAST]
-|  |  mem-estimate=144.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=40 row-size=44B cardinality=0
+|  |  mem-estimate=1.38MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=40 row-size=44B cardinality=29.46K
 |  |  in pipelines: 63(GETNEXT)
 |  |
 |  F17:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=44.51MB mem-reservation=34.00MB thread-reservation=1
 |  14:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=40 row-size=44B cardinality=0
+|  |  tuple-ids=40 row-size=44B cardinality=29.46K
 |  |  in pipelines: 63(GETNEXT)
 |  |
 |  63:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2)) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=29.46K
 |  |  in pipelines: 63(GETNEXT), 16(OPEN)
 |  |
 |  62:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=294.63K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  F15:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=32.77MB mem-reservation=11.50MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  Per-Host Resources: mem-estimate=55.77MB mem-reservation=42.50MB thread-reservation=1
 |  20:AGGREGATE [STREAMING]
 |  |  output: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=294.63K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  19:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash predicates: cs_bill_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: cs_bill_customer_sk = c_customer_sk
-|  |  runtime filters: RF018[bloom] <- c_customer_sk
 |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
 |  |  tuple-ids=33,34,32 row-size=185B cardinality=294.63K
 |  |  in pipelines: 16(GETNEXT), 15(OPEN)
@@ -959,9 +966,10 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |  |  in pipelines: 15(GETNEXT)
 |  |  |
 |  |  F14:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Host Resources: mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=2
+|  |  Per-Host Resources: mem-estimate=131.00MB mem-reservation=11.00MB thread-reservation=2 runtime-filters-memory=3.00MB
 |  |  15:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -976,7 +984,7 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  F12:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=291.95MB mem-reservation=19.94MB thread-reservation=2 runtime-filters-memory=2.00MB
+|  Per-Host Resources: mem-estimate=290.95MB mem-reservation=18.94MB thread-reservation=2 runtime-filters-memory=1.00MB
 |  18:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: cs_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
@@ -1007,7 +1015,7 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 |  |
 |  16:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
 |     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF020[bloom] -> cs_sold_date_sk, RF018[bloom] -> cs_bill_customer_sk
+|     runtime filters: RF020[bloom] -> cs_sold_date_sk
 |     stored statistics:
 |       table: rows=1.44M size=96.62MB
 |       columns: all
@@ -1019,218 +1027,218 @@ Per-Host Resources: mem-estimate=20.95MB mem-reservation=11.62MB thread-reservat
 42:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26 row-size=137B cardinality=0
+|  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
+|  tuple-ids=26,12 row-size=137B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 57(OPEN)
 |
 |--58:EXCHANGE [BROADCAST]
-|  |  mem-estimate=290.89KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=26 row-size=93B cardinality=0
+|  |  mem-estimate=2.61MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=12 row-size=44B cardinality=58.90K
 |  |  in pipelines: 57(GETNEXT)
 |  |
 |  F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
-|  07:UNION
+|  Per-Host Resources: mem-estimate=62.76MB mem-reservation=34.00MB thread-reservation=1
+|  00:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=26 row-size=93B cardinality=0
+|  |  tuple-ids=12 row-size=44B cardinality=58.90K
 |  |  in pipelines: 57(GETNEXT)
 |  |
 |  57:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 57(GETNEXT), 09(OPEN)
+|  |  having: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2) > CAST(0 AS DECIMAL(3,0))
+|  |  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=58.90K
+|  |  in pipelines: 57(GETNEXT), 02(OPEN)
 |  |
 |  56:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F09:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=35.76MB mem-reservation=11.50MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  13:AGGREGATE [STREAMING]
+|  Per-Host Resources: mem-estimate=77.01MB mem-reservation=42.50MB thread-reservation=1
+|  06:AGGREGATE [STREAMING]
 |  |  output: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / CAST(2 AS DECIMAL(3,0)))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
-|  12:HASH JOIN [INNER JOIN, PARTITIONED]
+|  05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash predicates: ss_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
-|  |  runtime filters: RF014[bloom] <- c_customer_sk
 |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
-|  |  tuple-ids=15,16,14 row-size=185B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 08(OPEN)
+|  |  tuple-ids=1,2,0 row-size=185B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 01(OPEN)
 |  |
 |  |--55:EXCHANGE [HASH(c_customer_sk)]
 |  |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=14 row-size=153B cardinality=100.00K
-|  |  |  in pipelines: 08(GETNEXT)
+|  |  |  tuple-ids=0 row-size=153B cardinality=100.00K
+|  |  |  in pipelines: 01(GETNEXT)
 |  |  |
 |  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Host Resources: mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=2
-|  |  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  Per-Host Resources: mem-estimate=132.00MB mem-reservation=12.00MB thread-reservation=2 runtime-filters-memory=4.00MB
+|  |  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |  |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|  |     tuple-ids=14 row-size=153B cardinality=100.00K
-|  |     in pipelines: 08(GETNEXT)
+|  |     tuple-ids=0 row-size=153B cardinality=100.00K
+|  |     in pipelines: 01(GETNEXT)
 |  |
 |  54:EXCHANGE [HASH(ss_customer_sk)]
 |  |  mem-estimate=6.11MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=15,16 row-size=32B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT)
+|  |  tuple-ids=1,2 row-size=32B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F06:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=83.95MB mem-reservation=7.94MB thread-reservation=2 runtime-filters-memory=2.00MB
-|  11:HASH JOIN [INNER JOIN, BROADCAST]
+|  Per-Host Resources: mem-estimate=82.95MB mem-reservation=6.94MB thread-reservation=2 runtime-filters-memory=1.00MB
+|  04:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  runtime filters: RF016[bloom] <- d_date_sk
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=15,16 row-size=32B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 10(OPEN)
+|  |  tuple-ids=1,2 row-size=32B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 03(OPEN)
 |  |
 |  |--53:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=16 row-size=8B cardinality=373
-|  |  |  in pipelines: 10(GETNEXT)
+|  |  |  tuple-ids=2 row-size=8B cardinality=373
+|  |  |  in pipelines: 03(GETNEXT)
 |  |  |
 |  |  F07:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Host Resources: mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=2
-|  |  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|  |     tuple-ids=16 row-size=8B cardinality=373
-|  |     in pipelines: 10(GETNEXT)
+|  |     tuple-ids=2 row-size=8B cardinality=373
+|  |     in pipelines: 03(GETNEXT)
 |  |
-|  09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+|  02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
 |     HDFS partitions=1824/1824 files=1824 size=201.02MB
-|     runtime filters: RF016[bloom] -> ss_sold_date_sk, RF014[bloom] -> ss_customer_sk
+|     runtime filters: RF016[bloom] -> ss_sold_date_sk
 |     stored statistics:
 |       table: rows=2.88M size=201.02MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |     mem-estimate=80.00MB mem-reservation=4.00MB thread-reservation=1
-|     tuple-ids=15 row-size=24B cardinality=2.88M
-|     in pipelines: 09(GETNEXT)
+|     tuple-ids=1 row-size=24B cardinality=2.88M
+|     in pipelines: 02(GETNEXT)
 |
-00:UNION
+07:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=12 row-size=44B cardinality=0
+|  tuple-ids=26 row-size=93B cardinality=589.03K
 |  in pipelines: 52(GETNEXT)
 |
 52:AGGREGATE [FINALIZE]
 |  output: sum:merge(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  having: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2) > CAST(0 AS DECIMAL(3,0))
-|  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 52(GETNEXT), 02(OPEN)
+|  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 52(GETNEXT), 09(OPEN)
 |
 51:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F03:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=3
-Per-Host Resources: mem-estimate=35.76MB mem-reservation=11.50MB thread-reservation=1 runtime-filters-memory=1.00MB
-06:AGGREGATE [STREAMING]
+Per-Host Resources: mem-estimate=77.01MB mem-reservation=42.50MB thread-reservation=1
+13:AGGREGATE [STREAMING]
 |  output: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / CAST(2 AS DECIMAL(3,0)))
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
-05:HASH JOIN [INNER JOIN, PARTITIONED]
+12:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: ss_customer_sk = c_customer_sk
 |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
-|  runtime filters: RF010[bloom] <- c_customer_sk
 |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
-|  tuple-ids=1,2,0 row-size=185B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 01(OPEN)
+|  tuple-ids=15,16,14 row-size=185B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 08(OPEN)
 |
 |--50:EXCHANGE [HASH(c_customer_sk)]
 |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0 row-size=153B cardinality=100.00K
-|  |  in pipelines: 01(GETNEXT)
+|  |  tuple-ids=14 row-size=153B cardinality=100.00K
+|  |  in pipelines: 08(GETNEXT)
 |  |
 |  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=2
-|  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  Per-Host Resources: mem-estimate=132.00MB mem-reservation=12.00MB thread-reservation=2 runtime-filters-memory=4.00MB
+|  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |     HDFS partitions=1/1 files=1 size=5.49MB
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|     tuple-ids=0 row-size=153B cardinality=100.00K
-|     in pipelines: 01(GETNEXT)
+|     tuple-ids=14 row-size=153B cardinality=100.00K
+|     in pipelines: 08(GETNEXT)
 |
 49:EXCHANGE [HASH(ss_customer_sk)]
 |  mem-estimate=6.11MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=1,2 row-size=32B cardinality=589.03K
-|  in pipelines: 02(GETNEXT)
+|  tuple-ids=15,16 row-size=32B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-Per-Host Resources: mem-estimate=83.95MB mem-reservation=7.94MB thread-reservation=2 runtime-filters-memory=2.00MB
-04:HASH JOIN [INNER JOIN, BROADCAST]
+Per-Host Resources: mem-estimate=82.95MB mem-reservation=6.94MB thread-reservation=2 runtime-filters-memory=1.00MB
+11:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: ss_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  runtime filters: RF012[bloom] <- d_date_sk
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=1,2 row-size=32B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 03(OPEN)
+|  tuple-ids=15,16 row-size=32B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 10(OPEN)
 |
 |--48:EXCHANGE [BROADCAST]
 |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=2 row-size=8B cardinality=373
-|  |  in pipelines: 03(GETNEXT)
+|  |  tuple-ids=16 row-size=8B cardinality=373
+|  |  in pipelines: 10(GETNEXT)
 |  |
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Host Resources: mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=2
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
-|     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
-|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|     tuple-ids=2 row-size=8B cardinality=373
-|     in pipelines: 03(GETNEXT)
+|     tuple-ids=16 row-size=8B cardinality=373
+|     in pipelines: 10(GETNEXT)
 |
-02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
    HDFS partitions=1824/1824 files=1824 size=201.02MB
-   runtime filters: RF012[bloom] -> ss_sold_date_sk, RF010[bloom] -> ss_customer_sk
+   runtime filters: RF012[bloom] -> ss_sold_date_sk
    stored statistics:
      table: rows=2.88M size=201.02MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
    mem-estimate=80.00MB mem-reservation=4.00MB thread-reservation=1
-   tuple-ids=1 row-size=24B cardinality=2.88M
-   in pipelines: 02(GETNEXT)
+   tuple-ids=15 row-size=24B cardinality=2.88M
+   in pipelines: 09(GETNEXT)
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=280.12MB Threads=56
-Per-Host Resource Estimates: Memory=818MB
+Max Per-Host Resource Reservation: Memory=851.38MB Threads=56
+Per-Host Resource Estimates: Memory=1.33GB
 F36:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=485.79KB mem-reservation=0B thread-reservation=1
+|  Per-Instance Resources: mem-estimate=49.95KB mem-reservation=0B thread-reservation=1
 PLAN-ROOT SINK
 |  output exprs: customer_id, customer_first_name, customer_last_name, customer_preferred_cust_flag
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
@@ -1238,16 +1246,16 @@ PLAN-ROOT SINK
 83:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
 |  limit: 100
-|  mem-estimate=485.79KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=84 row-size=77B cardinality=0
+|  mem-estimate=49.95KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=84 row-size=77B cardinality=100
 |  in pipelines: 47(GETNEXT)
 |
 F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
-Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reservation=1
+Per-Instance Resources: mem-estimate=45.02MB mem-reservation=34.00MB thread-reservation=1
 47:TOP-N [LIMIT=100]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
-|  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=84 row-size=77B cardinality=0
+|  mem-estimate=7.52KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=84 row-size=77B cardinality=100
 |  in pipelines: 47(GETNEXT), 52(OPEN)
 |
 46:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1255,48 +1263,49 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END
-|  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54,68,82 row-size=313B cardinality=0
+|  mem-estimate=0B mem-reservation=0B spill-buffer=512.00KB thread-reservation=0
+|  tuple-ids=26,12,40,54,68,82 row-size=313B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 81(OPEN)
 |
 |--F37:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=3.97MB mem-reservation=3.88MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=24.30MB mem-reservation=18.00MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: customer_id
-|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
+|  |  runtime filters: RF000[bloom] <- customer_id
+|  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=512.00KB thread-reservation=0
 |  |
 |  82:EXCHANGE [BROADCAST]
-|  |  mem-estimate=96.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=82 row-size=44B cardinality=0
+|  |  mem-estimate=6.30MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=82 row-size=44B cardinality=148.00K
 |  |  in pipelines: 81(GETNEXT)
 |  |
 |  F35:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Instance Resources: mem-estimate=10.34MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=44.34MB mem-reservation=34.00MB thread-reservation=1
 |  35:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=82 row-size=44B cardinality=0
+|  |  tuple-ids=82 row-size=44B cardinality=148.00K
 |  |  in pipelines: 81(GETNEXT)
 |  |
 |  81:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 81(GETNEXT), 37(OPEN)
 |  |
 |  80:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=346.23KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=10.34MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 37(GETNEXT)
 |  |
 |  F33:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=2 instances=2
-|  Per-Instance Resources: mem-estimate=12.34MB mem-reservation=2.00MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=36.34MB mem-reservation=34.00MB thread-reservation=1
 |  41:AGGREGATE [STREAMING]
 |  |  output: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=81 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=81 row-size=169B cardinality=148.00K
 |  |  in pipelines: 37(GETNEXT)
 |  |
 |  40:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -1391,48 +1400,49 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54,68 row-size=269B cardinality=0
+|  tuple-ids=26,12,40,54,68 row-size=269B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 75(OPEN)
 |
 |--F40:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=3.97MB mem-reservation=3.88MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=5.59MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
 |  |  build expressions: customer_id
+|  |  runtime filters: RF002[bloom] <- customer_id
 |  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
 |  |
 |  76:EXCHANGE [BROADCAST]
-|  |  mem-estimate=96.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=68 row-size=44B cardinality=0
+|  |  mem-estimate=731.94KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=68 row-size=44B cardinality=14.80K
 |  |  in pipelines: 75(GETNEXT)
 |  |
 |  F29:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Instance Resources: mem-estimate=10.34MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=44.34MB mem-reservation=34.00MB thread-reservation=1
 |  28:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=68 row-size=44B cardinality=0
+|  |  tuple-ids=68 row-size=44B cardinality=14.80K
 |  |  in pipelines: 75(GETNEXT)
 |  |
 |  75:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / 2)) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=14.80K
 |  |  in pipelines: 75(GETNEXT), 30(OPEN)
 |  |
 |  74:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=346.23KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=10.34MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=148.00K
 |  |  in pipelines: 30(GETNEXT)
 |  |
 |  F27:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=2 instances=2
-|  Per-Instance Resources: mem-estimate=12.34MB mem-reservation=2.00MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=36.34MB mem-reservation=34.00MB thread-reservation=1
 |  34:AGGREGATE [STREAMING]
 |  |  output: sum((((ws_ext_list_price - ws_ext_wholesale_cost - ws_ext_discount_amt) + ws_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=67 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=67 row-size=169B cardinality=148.00K
 |  |  in pipelines: 30(GETNEXT)
 |  |
 |  33:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -1456,9 +1466,11 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  |  in pipelines: 29(GETNEXT)
 |  |  |
 |  |  F26:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
 |  |  29:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -1527,48 +1539,49 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN year_total / year_total ELSE NULL END
-|  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40,54 row-size=225B cardinality=0
+|  mem-estimate=0B mem-reservation=0B spill-buffer=1.00MB thread-reservation=0
+|  tuple-ids=26,12,40,54 row-size=225B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 69(OPEN)
 |
 |--F43:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=3.88MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=45.14MB mem-reservation=35.00MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=06 plan-id=07 cohort-id=01
 |  |  build expressions: customer_id
-|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
+|  |  runtime filters: RF004[bloom] <- customer_id
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=1.00MB thread-reservation=0
 |  |
 |  70:EXCHANGE [BROADCAST]
-|  |  mem-estimate=144.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54 row-size=44B cardinality=0
+|  |  mem-estimate=10.14MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=54 row-size=44B cardinality=294.63K
 |  |  in pipelines: 69(GETNEXT)
 |  |
 |  F23:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Instance Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=44.51MB mem-reservation=34.00MB thread-reservation=1
 |  21:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54 row-size=44B cardinality=0
+|  |  tuple-ids=54 row-size=44B cardinality=294.63K
 |  |  in pipelines: 69(GETNEXT)
 |  |
 |  69:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 69(GETNEXT), 23(OPEN)
 |  |
 |  68:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F21:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=3
-|  Per-Instance Resources: mem-estimate=13.11MB mem-reservation=2.00MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=37.11MB mem-reservation=34.00MB thread-reservation=1
 |  27:AGGREGATE [STREAMING]
 |  |  output: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=49 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=49 row-size=169B cardinality=294.63K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  26:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -1580,11 +1593,10 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  in pipelines: 23(GETNEXT), 22(OPEN)
 |  |
 |  |--F44:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=19.65MB mem-reservation=9.50MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=18.65MB mem-reservation=8.50MB thread-reservation=1
 |  |  JOIN BUILD
 |  |  |  join-table-id=07 plan-id=08 cohort-id=04
 |  |  |  build expressions: c_customer_sk
-|  |  |  runtime filters: RF022[bloom] <- c_customer_sk
 |  |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
 |  |  |
 |  |  67:EXCHANGE [HASH(c_customer_sk)]
@@ -1593,9 +1605,11 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  |  in pipelines: 22(GETNEXT)
 |  |  |
 |  |  F20:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
 |  |  22:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -1610,7 +1624,7 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F18:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=48.00MB mem-reservation=16.00MB thread-reservation=1
 |  25:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=08
@@ -1650,7 +1664,7 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |
 |  23:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
 |     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF024[bloom] -> cs_sold_date_sk, RF022[bloom] -> cs_bill_customer_sk
+|     runtime filters: RF024[bloom] -> cs_sold_date_sk
 |     stored statistics:
 |       table: rows=1.44M size=96.62MB
 |       columns: all
@@ -1663,49 +1677,50 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash-table-id=09
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26,40 row-size=181B cardinality=0
+|  mem-estimate=0B mem-reservation=0B spill-buffer=128.00KB thread-reservation=0
+|  tuple-ids=26,12,40 row-size=181B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 63(OPEN)
 |
 |--F46:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=3.88MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=8.13MB mem-reservation=6.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=09 plan-id=10 cohort-id=01
 |  |  build expressions: customer_id
-|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
+|  |  runtime filters: RF006[bloom] <- customer_id
+|  |  mem-estimate=5.75MB mem-reservation=5.75MB spill-buffer=128.00KB thread-reservation=0
 |  |
 |  64:EXCHANGE [BROADCAST]
-|  |  mem-estimate=144.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=40 row-size=44B cardinality=0
+|  |  mem-estimate=1.38MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=40 row-size=44B cardinality=29.46K
 |  |  in pipelines: 63(GETNEXT)
 |  |
 |  F17:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Instance Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=44.51MB mem-reservation=34.00MB thread-reservation=1
 |  14:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=40 row-size=44B cardinality=0
+|  |  tuple-ids=40 row-size=44B cardinality=29.46K
 |  |  in pipelines: 63(GETNEXT)
 |  |
 |  63:AGGREGATE [FINALIZE]
 |  |  output: sum:merge((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / 2)) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=29.46K
 |  |  in pipelines: 63(GETNEXT), 16(OPEN)
 |  |
 |  62:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=294.63K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  F15:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=3
-|  Per-Instance Resources: mem-estimate=13.11MB mem-reservation=2.00MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=37.11MB mem-reservation=34.00MB thread-reservation=1
 |  20:AGGREGATE [STREAMING]
 |  |  output: sum((((cs_ext_list_price - cs_ext_wholesale_cost - cs_ext_discount_amt) + cs_ext_sales_price) / CAST(2 AS DECIMAL(3,0))))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=35 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=35 row-size=169B cardinality=294.63K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  19:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -1717,11 +1732,10 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  in pipelines: 16(GETNEXT), 15(OPEN)
 |  |
 |  |--F47:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=19.65MB mem-reservation=9.50MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=18.65MB mem-reservation=8.50MB thread-reservation=1
 |  |  JOIN BUILD
 |  |  |  join-table-id=10 plan-id=11 cohort-id=05
 |  |  |  build expressions: c_customer_sk
-|  |  |  runtime filters: RF018[bloom] <- c_customer_sk
 |  |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
 |  |  |
 |  |  61:EXCHANGE [HASH(c_customer_sk)]
@@ -1730,9 +1744,11 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  |  in pipelines: 15(GETNEXT)
 |  |  |
 |  |  F14:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
 |  |  15:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -1747,7 +1763,7 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  F12:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=48.00MB mem-reservation=16.00MB thread-reservation=1
 |  18:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=11
@@ -1787,7 +1803,7 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |
 |  16:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
 |     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF020[bloom] -> cs_sold_date_sk, RF018[bloom] -> cs_bill_customer_sk
+|     runtime filters: RF020[bloom] -> cs_sold_date_sk
 |     stored statistics:
 |       table: rows=1.44M size=96.62MB
 |       columns: all
@@ -1800,98 +1816,100 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash-table-id=12
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=12,26 row-size=137B cardinality=0
+|  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
+|  tuple-ids=26,12 row-size=137B cardinality=589.03K
 |  in pipelines: 52(GETNEXT), 57(OPEN)
 |
 |--F49:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=4.44MB mem-reservation=3.88MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=12.25MB mem-reservation=9.50MB thread-reservation=1
 |  JOIN BUILD
 |  |  join-table-id=12 plan-id=13 cohort-id=01
 |  |  build expressions: customer_id
-|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
+|  |  mem-estimate=9.50MB mem-reservation=9.50MB spill-buffer=256.00KB thread-reservation=0
 |  |
 |  58:EXCHANGE [BROADCAST]
-|  |  mem-estimate=581.79KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=26 row-size=93B cardinality=0
+|  |  mem-estimate=2.75MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=12 row-size=44B cardinality=58.90K
 |  |  in pipelines: 57(GETNEXT)
 |  |
 |  F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
-|  Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reservation=1
-|  07:UNION
+|  Per-Instance Resources: mem-estimate=45.01MB mem-reservation=34.00MB thread-reservation=1
+|  00:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=26 row-size=93B cardinality=0
+|  |  tuple-ids=12 row-size=44B cardinality=58.90K
 |  |  in pipelines: 57(GETNEXT)
 |  |
 |  57:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 57(GETNEXT), 09(OPEN)
+|  |  having: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2) > CAST(0 AS DECIMAL(3,0))
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=58.90K
+|  |  in pipelines: 57(GETNEXT), 02(OPEN)
 |  |
 |  56:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=1.01MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=11.01MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F09:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
-|  Per-Instance Resources: mem-estimate=16.23MB mem-reservation=2.00MB thread-reservation=1
-|  13:AGGREGATE [STREAMING]
+|  Per-Instance Resources: mem-estimate=40.23MB mem-reservation=34.00MB thread-reservation=1
+|  06:AGGREGATE [STREAMING]
 |  |  output: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / CAST(2 AS DECIMAL(3,0)))
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=17 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
-|  12:HASH JOIN [INNER JOIN, PARTITIONED]
+|  05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=13
 |  |  hash predicates: ss_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
-|  |  tuple-ids=15,16,14 row-size=185B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 08(OPEN)
+|  |  tuple-ids=1,2,0 row-size=185B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 01(OPEN)
 |  |
 |  |--F50:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
-|  |  |  Per-Instance Resources: mem-estimate=15.90MB mem-reservation=5.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=14.90MB mem-reservation=4.75MB thread-reservation=1
 |  |  JOIN BUILD
 |  |  |  join-table-id=13 plan-id=14 cohort-id=06
 |  |  |  build expressions: c_customer_sk
-|  |  |  runtime filters: RF014[bloom] <- c_customer_sk
 |  |  |  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
 |  |  |
 |  |  55:EXCHANGE [HASH(c_customer_sk)]
 |  |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=14 row-size=153B cardinality=100.00K
-|  |  |  in pipelines: 08(GETNEXT)
+|  |  |  tuple-ids=0 row-size=153B cardinality=100.00K
+|  |  |  in pipelines: 01(GETNEXT)
 |  |  |
 |  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Host Shared Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=0 runtime-filters-memory=4.00MB
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
-|  |  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
+|  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |  |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|  |     tuple-ids=14 row-size=153B cardinality=100.00K
-|  |     in pipelines: 08(GETNEXT)
+|  |     tuple-ids=0 row-size=153B cardinality=100.00K
+|  |     in pipelines: 01(GETNEXT)
 |  |
 |  54:EXCHANGE [HASH(ss_customer_sk)]
 |  |  mem-estimate=6.23MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=15,16 row-size=32B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT)
+|  |  tuple-ids=1,2 row-size=32B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F06:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
-|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=1
-|  11:HASH JOIN [INNER JOIN, BROADCAST]
+|  04:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=14
 |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=15,16 row-size=32B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 10(OPEN)
+|  |  tuple-ids=1,2 row-size=32B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 03(OPEN)
 |  |
 |  |--F51:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
@@ -1903,111 +1921,111 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  |
 |  |  53:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=16 row-size=8B cardinality=373
-|  |  |  in pipelines: 10(GETNEXT)
+|  |  |  tuple-ids=2 row-size=8B cardinality=373
+|  |  |  in pipelines: 03(GETNEXT)
 |  |  |
 |  |  F07:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=1
-|  |  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
-|  |     tuple-ids=16 row-size=8B cardinality=373
-|  |     in pipelines: 10(GETNEXT)
+|  |     tuple-ids=2 row-size=8B cardinality=373
+|  |     in pipelines: 03(GETNEXT)
 |  |
-|  09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+|  02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
 |     HDFS partitions=1824/1824 files=1824 size=201.02MB
-|     runtime filters: RF016[bloom] -> ss_sold_date_sk, RF014[bloom] -> ss_customer_sk
+|     runtime filters: RF016[bloom] -> ss_sold_date_sk
 |     stored statistics:
 |       table: rows=2.88M size=201.02MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|     tuple-ids=15 row-size=24B cardinality=2.88M
-|     in pipelines: 09(GETNEXT)
+|     tuple-ids=1 row-size=24B cardinality=2.88M
+|     in pipelines: 02(GETNEXT)
 |
-00:UNION
+07:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=12 row-size=44B cardinality=0
+|  tuple-ids=26 row-size=93B cardinality=589.03K
 |  in pipelines: 52(GETNEXT)
 |
 52:AGGREGATE [FINALIZE]
 |  output: sum:merge(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  having: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / 2) > CAST(0 AS DECIMAL(3,0))
-|  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 52(GETNEXT), 02(OPEN)
+|  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 52(GETNEXT), 09(OPEN)
 |
 51:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  mem-estimate=1.01MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=11.01MB mem-reservation=0B thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F03:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
-Per-Instance Resources: mem-estimate=16.23MB mem-reservation=2.00MB thread-reservation=1
-06:AGGREGATE [STREAMING]
+Per-Instance Resources: mem-estimate=40.23MB mem-reservation=34.00MB thread-reservation=1
+13:AGGREGATE [STREAMING]
 |  output: sum(((ss_ext_list_price - ss_ext_wholesale_cost - ss_ext_discount_amt) + ss_ext_sales_price) / CAST(2 AS DECIMAL(3,0)))
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=17 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
-05:HASH JOIN [INNER JOIN, PARTITIONED]
+12:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash-table-id=15
 |  hash predicates: ss_customer_sk = c_customer_sk
 |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
-|  tuple-ids=1,2,0 row-size=185B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 01(OPEN)
+|  tuple-ids=15,16,14 row-size=185B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 08(OPEN)
 |
 |--F52:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
-|  |  Per-Instance Resources: mem-estimate=15.90MB mem-reservation=5.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  Per-Instance Resources: mem-estimate=14.90MB mem-reservation=4.75MB thread-reservation=1
 |  JOIN BUILD
 |  |  join-table-id=15 plan-id=16 cohort-id=01
 |  |  build expressions: c_customer_sk
-|  |  runtime filters: RF010[bloom] <- c_customer_sk
 |  |  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
 |  |
 |  50:EXCHANGE [HASH(c_customer_sk)]
 |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0 row-size=153B cardinality=100.00K
-|  |  in pipelines: 01(GETNEXT)
+|  |  tuple-ids=14 row-size=153B cardinality=100.00K
+|  |  in pipelines: 08(GETNEXT)
 |  |
 |  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  Per-Host Shared Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=0 runtime-filters-memory=4.00MB
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
-|  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |     HDFS partitions=1/1 files=1 size=5.49MB
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|     tuple-ids=0 row-size=153B cardinality=100.00K
-|     in pipelines: 01(GETNEXT)
+|     tuple-ids=14 row-size=153B cardinality=100.00K
+|     in pipelines: 08(GETNEXT)
 |
 49:EXCHANGE [HASH(ss_customer_sk)]
 |  mem-estimate=6.23MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=1,2 row-size=32B cardinality=589.03K
-|  in pipelines: 02(GETNEXT)
+|  tuple-ids=15,16 row-size=32B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
-Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 Per-Instance Resources: mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=1
-04:HASH JOIN [INNER JOIN, BROADCAST]
+11:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash-table-id=16
 |  hash predicates: ss_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=1,2 row-size=32B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 03(OPEN)
+|  tuple-ids=15,16 row-size=32B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 10(OPEN)
 |
 |--F53:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
@@ -2019,33 +2037,33 @@ Per-Instance Resources: mem-estimate=16.00MB mem-reservation=4.00MB thread-reser
 |  |
 |  48:EXCHANGE [BROADCAST]
 |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=2 row-size=8B cardinality=373
-|  |  in pipelines: 03(GETNEXT)
+|  |  tuple-ids=16 row-size=8B cardinality=373
+|  |  in pipelines: 10(GETNEXT)
 |  |
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=1
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
-|     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
-|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
-|     tuple-ids=2 row-size=8B cardinality=373
-|     in pipelines: 03(GETNEXT)
+|     tuple-ids=16 row-size=8B cardinality=373
+|     in pipelines: 10(GETNEXT)
 |
-02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
    HDFS partitions=1824/1824 files=1824 size=201.02MB
-   runtime filters: RF012[bloom] -> ss_sold_date_sk, RF010[bloom] -> ss_customer_sk
+   runtime filters: RF012[bloom] -> ss_sold_date_sk
    stored statistics:
      table: rows=2.88M size=201.02MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
    mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-   tuple-ids=1 row-size=24B cardinality=2.88M
-   in pipelines: 02(GETNEXT)
+   tuple-ids=15 row-size=24B cardinality=2.88M
+   in pipelines: 09(GETNEXT)
 ====
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q11.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q11.test
index 5f6e18d..3d7488b 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q11.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds/tpcds-q11.test
@@ -1,6 +1,5 @@
 # TPCDS-Q11
 WITH year_total AS
-
   (SELECT c_customer_id customer_id,
           c_first_name customer_first_name,
           c_last_name customer_last_name,
@@ -82,39 +81,39 @@ ORDER BY t_s_secyear.customer_id,
 LIMIT 100;
 
 ---- PLAN
-Max Per-Host Resource Reservation: Memory=144.56MB Threads=13
-Per-Host Resource Estimates: Memory=1.02GB
+Max Per-Host Resource Reservation: Memory=265.06MB Threads=13
+Per-Host Resource Estimates: Memory=1.11GB
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=1.02GB mem-reservation=144.56MB thread-reservation=13 runtime-filters-memory=10.00MB
+|  Per-Host Resources: mem-estimate=1.11GB mem-reservation=265.06MB thread-reservation=13 runtime-filters-memory=10.00MB
 PLAN-ROOT SINK
 |  output exprs: customer_id, customer_first_name, customer_last_name, customer_preferred_cust_flag
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
 |
 31:TOP-N [LIMIT=100]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
-|  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=40 row-size=77B cardinality=0
-|  in pipelines: 31(GETNEXT), 06(OPEN)
+|  mem-estimate=7.52KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=40 row-size=77B cardinality=100
+|  in pipelines: 31(GETNEXT), 13(OPEN)
 |
 30:HASH JOIN [INNER JOIN]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN (year_total * CAST(1.0000 AS DECIMAL(5,4))) / year_total ELSE CAST(0 AS DECIMAL(38,6)) END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN (year_total * CAST(1.0000 AS DECIMAL(5,4))) / year_total ELSE CAST(0 AS DECIMAL(38,6)) END
 |  runtime filters: RF000[bloom] <- customer_id
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18,28,38 row-size=225B cardinality=0
-|  in pipelines: 06(GETNEXT), 27(OPEN)
+|  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
+|  tuple-ids=18,8,28,38 row-size=225B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 27(OPEN)
 |
 |--21:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=38 row-size=44B cardinality=0
+|  |  tuple-ids=38 row-size=44B cardinality=148.00K
 |  |  in pipelines: 27(GETNEXT)
 |  |
 |  27:AGGREGATE [FINALIZE]
 |  |  output: sum(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 27(GETNEXT), 22(OPEN)
 |  |
 |  26:HASH JOIN [INNER JOIN]
@@ -141,7 +140,6 @@ PLAN-ROOT SINK
 |  25:HASH JOIN [INNER JOIN]
 |  |  hash predicates: c_customer_sk = ws_bill_customer_sk
 |  |  fk/pk conjuncts: none
-|  |  runtime filters: RF020[bloom] <- ws_bill_customer_sk
 |  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
 |  |  tuple-ids=34,35 row-size=169B cardinality=719.38K
 |  |  in pipelines: 22(GETNEXT), 23(OPEN)
@@ -159,7 +157,6 @@ PLAN-ROOT SINK
 |  |
 |  22:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF020[bloom] -> c_customer_sk
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -173,20 +170,20 @@ PLAN-ROOT SINK
 |  fk/pk conjuncts: assumed fk/pk
 |  runtime filters: RF002[bloom] <- customer_id
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18,28 row-size=181B cardinality=0
-|  in pipelines: 06(GETNEXT), 20(OPEN)
+|  tuple-ids=18,8,28 row-size=181B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 20(OPEN)
 |
 |--14:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=28 row-size=44B cardinality=0
+|  |  tuple-ids=28 row-size=44B cardinality=14.80K
 |  |  in pipelines: 20(GETNEXT)
 |  |
 |  20:AGGREGATE [FINALIZE]
 |  |  output: sum(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum(ws_ext_list_price - ws_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=14.80K
 |  |  in pipelines: 20(GETNEXT), 15(OPEN)
 |  |
 |  19:HASH JOIN [INNER JOIN]
@@ -231,7 +228,7 @@ PLAN-ROOT SINK
 |  |
 |  15:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF016[bloom] -> c_customer_sk, RF000[bloom] -> tpcds_parquet.customer.c_customer_id
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF016[bloom] -> c_customer_sk
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -243,52 +240,54 @@ PLAN-ROOT SINK
 28:HASH JOIN [INNER JOIN]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18 row-size=137B cardinality=0
-|  in pipelines: 06(GETNEXT), 13(OPEN)
+|  runtime filters: RF004[bloom] <- customer_id
+|  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
+|  tuple-ids=18,8 row-size=137B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 06(OPEN)
 |
-|--07:UNION
+|--00:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=18 row-size=93B cardinality=0
-|  |  in pipelines: 13(GETNEXT)
+|  |  tuple-ids=8 row-size=44B cardinality=58.90K
+|  |  in pipelines: 06(GETNEXT)
 |  |
-|  13:AGGREGATE [FINALIZE]
+|  06:AGGREGATE [FINALIZE]
 |  |  output: sum(ss_ext_list_price - ss_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 13(GETNEXT), 08(OPEN)
+|  |  having: sum(ss_ext_list_price - ss_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
+|  |  mem-estimate=104.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=58.90K
+|  |  in pipelines: 06(GETNEXT), 01(OPEN)
 |  |
-|  12:HASH JOIN [INNER JOIN]
+|  05:HASH JOIN [INNER JOIN]
 |  |  hash predicates: c_customer_sk = ss_customer_sk
 |  |  fk/pk conjuncts: c_customer_sk = ss_customer_sk
 |  |  runtime filters: RF010[bloom] <- ss_customer_sk
 |  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
-|  |  tuple-ids=10,11,12 row-size=177B cardinality=589.03K
-|  |  in pipelines: 08(GETNEXT), 09(OPEN)
+|  |  tuple-ids=0,1,2 row-size=177B cardinality=589.03K
+|  |  in pipelines: 01(GETNEXT), 02(OPEN)
 |  |
-|  |--11:HASH JOIN [INNER JOIN]
+|  |--04:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  |  runtime filters: RF012[bloom] <- d_date_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  |  tuple-ids=11,12 row-size=24B cardinality=589.03K
-|  |  |  in pipelines: 09(GETNEXT), 10(OPEN)
+|  |  |  tuple-ids=1,2 row-size=24B cardinality=589.03K
+|  |  |  in pipelines: 02(GETNEXT), 03(OPEN)
 |  |  |
-|  |  |--10:SCAN HDFS [tpcds_parquet.date_dim]
+|  |  |--03:SCAN HDFS [tpcds_parquet.date_dim]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |  |     stored statistics:
 |  |  |       table: rows=73.05K size=2.15MB
 |  |  |       columns: all
 |  |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
-|  |  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |  |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|  |  |     tuple-ids=12 row-size=8B cardinality=373
-|  |  |     in pipelines: 10(GETNEXT)
+|  |  |     tuple-ids=2 row-size=8B cardinality=373
+|  |  |     in pipelines: 03(GETNEXT)
 |  |  |
-|  |  09:SCAN HDFS [tpcds_parquet.store_sales]
+|  |  02:SCAN HDFS [tpcds_parquet.store_sales]
 |  |     HDFS partitions=1824/1824 files=1824 size=201.02MB
 |  |     runtime filters: RF012[bloom] -> ss_sold_date_sk
 |  |     stored statistics:
@@ -297,63 +296,62 @@ PLAN-ROOT SINK
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |  |     mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
-|  |     tuple-ids=11 row-size=16B cardinality=2.88M
-|  |     in pipelines: 09(GETNEXT)
+|  |     tuple-ids=1 row-size=16B cardinality=2.88M
+|  |     in pipelines: 02(GETNEXT)
 |  |
-|  08:SCAN HDFS [tpcds_parquet.customer]
+|  01:SCAN HDFS [tpcds_parquet.customer]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF010[bloom] -> c_customer_sk, RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF010[bloom] -> c_customer_sk
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|     tuple-ids=10 row-size=153B cardinality=100.00K
-|     in pipelines: 08(GETNEXT)
+|     tuple-ids=0 row-size=153B cardinality=100.00K
+|     in pipelines: 01(GETNEXT)
 |
-00:UNION
+07:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=8 row-size=44B cardinality=0
-|  in pipelines: 06(GETNEXT)
+|  tuple-ids=18 row-size=93B cardinality=589.03K
+|  in pipelines: 13(GETNEXT)
 |
-06:AGGREGATE [FINALIZE]
+13:AGGREGATE [FINALIZE]
 |  output: sum(ss_ext_list_price - ss_ext_discount_amt)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  having: sum(ss_ext_list_price - ss_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
-|  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 06(GETNEXT), 01(OPEN)
+|  mem-estimate=104.50MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 13(GETNEXT), 08(OPEN)
 |
-05:HASH JOIN [INNER JOIN]
+12:HASH JOIN [INNER JOIN]
 |  hash predicates: c_customer_sk = ss_customer_sk
 |  fk/pk conjuncts: c_customer_sk = ss_customer_sk
 |  runtime filters: RF006[bloom] <- ss_customer_sk
 |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
-|  tuple-ids=0,1,2 row-size=177B cardinality=589.03K
-|  in pipelines: 01(GETNEXT), 02(OPEN)
+|  tuple-ids=10,11,12 row-size=177B cardinality=589.03K
+|  in pipelines: 08(GETNEXT), 09(OPEN)
 |
-|--04:HASH JOIN [INNER JOIN]
+|--11:HASH JOIN [INNER JOIN]
 |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  runtime filters: RF008[bloom] <- d_date_sk
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=1,2 row-size=24B cardinality=589.03K
-|  |  in pipelines: 02(GETNEXT), 03(OPEN)
+|  |  tuple-ids=11,12 row-size=24B cardinality=589.03K
+|  |  in pipelines: 09(GETNEXT), 10(OPEN)
 |  |
-|  |--03:SCAN HDFS [tpcds_parquet.date_dim]
+|  |--10:SCAN HDFS [tpcds_parquet.date_dim]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |  |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|  |     tuple-ids=2 row-size=8B cardinality=373
-|  |     in pipelines: 03(GETNEXT)
+|  |     tuple-ids=12 row-size=8B cardinality=373
+|  |     in pipelines: 10(GETNEXT)
 |  |
-|  02:SCAN HDFS [tpcds_parquet.store_sales]
+|  09:SCAN HDFS [tpcds_parquet.store_sales]
 |     HDFS partitions=1824/1824 files=1824 size=201.02MB
 |     runtime filters: RF008[bloom] -> ss_sold_date_sk
 |     stored statistics:
@@ -362,24 +360,24 @@ PLAN-ROOT SINK
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |     mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
-|     tuple-ids=1 row-size=16B cardinality=2.88M
-|     in pipelines: 02(GETNEXT)
+|     tuple-ids=11 row-size=16B cardinality=2.88M
+|     in pipelines: 09(GETNEXT)
 |
-01:SCAN HDFS [tpcds_parquet.customer]
+08:SCAN HDFS [tpcds_parquet.customer]
    HDFS partitions=1/1 files=1 size=5.49MB
-   runtime filters: RF006[bloom] -> c_customer_sk, RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
+   runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id, RF006[bloom] -> c_customer_sk
    stored statistics:
      table: rows=100.00K size=5.49MB
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=100.00K
    mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-   tuple-ids=0 row-size=153B cardinality=100.00K
-   in pipelines: 01(GETNEXT)
+   tuple-ids=10 row-size=153B cardinality=100.00K
+   in pipelines: 08(GETNEXT)
 ---- DISTRIBUTEDPLAN
-Max Per-Host Resource Reservation: Memory=155.31MB Threads=33
-Per-Host Resource Estimates: Memory=1.19GB
+Max Per-Host Resource Reservation: Memory=420.94MB Threads=33
+Per-Host Resource Estimates: Memory=1.51GB
 F24:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=242.89KB mem-reservation=0B thread-reservation=1
+|  Per-Host Resources: mem-estimate=26.23KB mem-reservation=0B thread-reservation=1
 PLAN-ROOT SINK
 |  output exprs: customer_id, customer_first_name, customer_last_name, customer_preferred_cust_flag
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
@@ -387,16 +385,16 @@ PLAN-ROOT SINK
 55:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
 |  limit: 100
-|  mem-estimate=242.89KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=40 row-size=77B cardinality=0
+|  mem-estimate=26.23KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=40 row-size=77B cardinality=100
 |  in pipelines: 31(GETNEXT)
 |
 F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservation=1 runtime-filters-memory=2.00MB
+Per-Host Resources: mem-estimate=90.48MB mem-reservation=52.19MB thread-reservation=1 runtime-filters-memory=3.00MB
 31:TOP-N [LIMIT=100]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
-|  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=40 row-size=77B cardinality=0
+|  mem-estimate=7.52KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=40 row-size=77B cardinality=100
 |  in pipelines: 31(GETNEXT), 36(OPEN)
 |
 30:HASH JOIN [INNER JOIN, BROADCAST]
@@ -404,41 +402,41 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN (year_total * CAST(1.0000 AS DECIMAL(5,4))) / year_total ELSE CAST(0 AS DECIMAL(38,6)) END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN (year_total * CAST(1.0000 AS DECIMAL(5,4))) / year_total ELSE CAST(0 AS DECIMAL(38,6)) END
 |  runtime filters: RF000[bloom] <- customer_id
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18,28,38 row-size=225B cardinality=0
+|  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
+|  tuple-ids=18,8,28,38 row-size=225B cardinality=589.03K
 |  in pipelines: 36(GETNEXT), 53(OPEN)
 |
 |--54:EXCHANGE [BROADCAST]
-|  |  mem-estimate=48.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=38 row-size=44B cardinality=0
+|  |  mem-estimate=6.26MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=38 row-size=44B cardinality=148.00K
 |  |  in pipelines: 53(GETNEXT)
 |  |
 |  F23:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=10.17MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=44.17MB mem-reservation=34.00MB thread-reservation=1
 |  21:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=38 row-size=44B cardinality=0
+|  |  tuple-ids=38 row-size=44B cardinality=148.00K
 |  |  in pipelines: 53(GETNEXT)
 |  |
 |  53:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 53(GETNEXT), 23(OPEN)
 |  |
 |  52:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=173.12KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=10.17MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F20:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=46.63MB mem-reservation=22.94MB thread-reservation=1 runtime-filters-memory=2.00MB
+|  Per-Host Resources: mem-estimate=69.63MB mem-reservation=53.94MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  27:AGGREGATE [STREAMING]
 |  |  output: sum(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  26:HASH JOIN [INNER JOIN, BROADCAST]
@@ -472,7 +470,6 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 |  25:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash predicates: ws_bill_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: none
-|  |  runtime filters: RF020[bloom] <- c_customer_sk
 |  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
 |  |  tuple-ids=35,34 row-size=169B cardinality=719.38K
 |  |  in pipelines: 23(GETNEXT), 22(OPEN)
@@ -500,10 +497,10 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F18:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Host Resources: mem-estimate=130.00MB mem-reservation=10.00MB thread-reservation=2 runtime-filters-memory=2.00MB
+|  Per-Host Resources: mem-estimate=129.00MB mem-reservation=9.00MB thread-reservation=2 runtime-filters-memory=1.00MB
 |  23:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
 |     HDFS partitions=1/1 files=2 size=45.09MB
-|     runtime filters: RF018[bloom] -> ws_sold_date_sk, RF020[bloom] -> ws_bill_customer_sk
+|     runtime filters: RF018[bloom] -> ws_sold_date_sk
 |     stored statistics:
 |       table: rows=719.38K size=45.09MB
 |       columns: all
@@ -517,41 +514,41 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 |  fk/pk conjuncts: assumed fk/pk
 |  runtime filters: RF002[bloom] <- customer_id
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18,28 row-size=181B cardinality=0
+|  tuple-ids=18,8,28 row-size=181B cardinality=589.03K
 |  in pipelines: 36(GETNEXT), 47(OPEN)
 |
 |--48:EXCHANGE [BROADCAST]
-|  |  mem-estimate=48.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=28 row-size=44B cardinality=0
+|  |  mem-estimate=683.94KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=28 row-size=44B cardinality=14.80K
 |  |  in pipelines: 47(GETNEXT)
 |  |
 |  F17:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=10.17MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Host Resources: mem-estimate=44.17MB mem-reservation=34.00MB thread-reservation=1
 |  14:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=28 row-size=44B cardinality=0
+|  |  tuple-ids=28 row-size=44B cardinality=14.80K
 |  |  in pipelines: 47(GETNEXT)
 |  |
 |  47:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum(ws_ext_list_price - ws_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=14.80K
 |  |  in pipelines: 47(GETNEXT), 16(OPEN)
 |  |
 |  46:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=173.12KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=10.17MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=148.00K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  F14:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=46.63MB mem-reservation=22.94MB thread-reservation=1 runtime-filters-memory=2.00MB
+|  Per-Host Resources: mem-estimate=70.63MB mem-reservation=54.94MB thread-reservation=1 runtime-filters-memory=2.00MB
 |  20:AGGREGATE [STREAMING]
 |  |  output: sum(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=148.00K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  19:HASH JOIN [INNER JOIN, BROADCAST]
@@ -629,59 +626,61 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 28:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18 row-size=137B cardinality=0
+|  runtime filters: RF004[bloom] <- customer_id
+|  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
+|  tuple-ids=18,8 row-size=137B cardinality=589.03K
 |  in pipelines: 36(GETNEXT), 41(OPEN)
 |
 |--42:EXCHANGE [BROADCAST]
-|  |  mem-estimate=290.89KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=18 row-size=93B cardinality=0
+|  |  mem-estimate=2.61MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=8 row-size=44B cardinality=58.90K
 |  |  in pipelines: 41(GETNEXT)
 |  |
 |  F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
-|  07:UNION
+|  Per-Host Resources: mem-estimate=62.76MB mem-reservation=34.00MB thread-reservation=1
+|  00:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=18 row-size=93B cardinality=0
+|  |  tuple-ids=8 row-size=44B cardinality=58.90K
 |  |  in pipelines: 41(GETNEXT)
 |  |
 |  41:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ss_ext_list_price - ss_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 41(GETNEXT), 09(OPEN)
+|  |  having: sum(ss_ext_list_price - ss_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
+|  |  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=58.90K
+|  |  in pipelines: 41(GETNEXT), 02(OPEN)
 |  |
 |  40:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F09:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=3
-|  Per-Host Resources: mem-estimate=34.24MB mem-reservation=11.50MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  13:AGGREGATE [STREAMING]
+|  Per-Host Resources: mem-estimate=76.49MB mem-reservation=43.50MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  06:AGGREGATE [STREAMING]
 |  |  output: sum(ss_ext_list_price - ss_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
-|  12:HASH JOIN [INNER JOIN, PARTITIONED]
+|  05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash predicates: ss_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
 |  |  runtime filters: RF010[bloom] <- c_customer_sk
 |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
-|  |  tuple-ids=11,12,10 row-size=177B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 08(OPEN)
+|  |  tuple-ids=1,2,0 row-size=177B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 01(OPEN)
 |  |
 |  |--39:EXCHANGE [HASH(c_customer_sk)]
 |  |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=10 row-size=153B cardinality=100.00K
-|  |  |  in pipelines: 08(GETNEXT)
+|  |  |  tuple-ids=0 row-size=153B cardinality=100.00K
+|  |  |  in pipelines: 01(GETNEXT)
 |  |  |
 |  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Host Resources: mem-estimate=130.00MB mem-reservation=10.00MB thread-reservation=2 runtime-filters-memory=2.00MB
-|  |  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
@@ -689,45 +688,45 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |  |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|  |     tuple-ids=10 row-size=153B cardinality=100.00K
-|  |     in pipelines: 08(GETNEXT)
+|  |     tuple-ids=0 row-size=153B cardinality=100.00K
+|  |     in pipelines: 01(GETNEXT)
 |  |
 |  38:EXCHANGE [HASH(ss_customer_sk)]
 |  |  mem-estimate=4.59MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=11,12 row-size=24B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT)
+|  |  tuple-ids=1,2 row-size=24B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F06:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  Per-Host Resources: mem-estimate=51.95MB mem-reservation=5.94MB thread-reservation=2 runtime-filters-memory=2.00MB
-|  11:HASH JOIN [INNER JOIN, BROADCAST]
+|  04:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  runtime filters: RF012[bloom] <- d_date_sk
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=11,12 row-size=24B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 10(OPEN)
+|  |  tuple-ids=1,2 row-size=24B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 03(OPEN)
 |  |
 |  |--37:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=12 row-size=8B cardinality=373
-|  |  |  in pipelines: 10(GETNEXT)
+|  |  |  tuple-ids=2 row-size=8B cardinality=373
+|  |  |  in pipelines: 03(GETNEXT)
 |  |  |
 |  |  F07:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Host Resources: mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=2
-|  |  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|  |     tuple-ids=12 row-size=8B cardinality=373
-|  |     in pipelines: 10(GETNEXT)
+|  |     tuple-ids=2 row-size=8B cardinality=373
+|  |     in pipelines: 03(GETNEXT)
 |  |
-|  09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+|  02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
 |     HDFS partitions=1824/1824 files=1824 size=201.02MB
 |     runtime filters: RF012[bloom] -> ss_sold_date_sk, RF010[bloom] -> ss_customer_sk
 |     stored statistics:
@@ -736,98 +735,97 @@ Per-Host Resources: mem-estimate=18.70MB mem-reservation=9.75MB thread-reservati
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |     mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
-|     tuple-ids=11 row-size=16B cardinality=2.88M
-|     in pipelines: 09(GETNEXT)
+|     tuple-ids=1 row-size=16B cardinality=2.88M
+|     in pipelines: 02(GETNEXT)
 |
-00:UNION
+07:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=8 row-size=44B cardinality=0
+|  tuple-ids=18 row-size=93B cardinality=589.03K
 |  in pipelines: 36(GETNEXT)
 |
 36:AGGREGATE [FINALIZE]
 |  output: sum:merge(ss_ext_list_price - ss_ext_discount_amt)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  having: sum(ss_ext_list_price - ss_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
-|  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 36(GETNEXT), 02(OPEN)
+|  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 36(GETNEXT), 09(OPEN)
 |
 35:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  mem-estimate=519.35KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=10.51MB mem-reservation=0B thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F03:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=3
-Per-Host Resources: mem-estimate=34.24MB mem-reservation=11.50MB thread-reservation=1 runtime-filters-memory=1.00MB
-06:AGGREGATE [STREAMING]
+Per-Host Resources: mem-estimate=76.49MB mem-reservation=43.50MB thread-reservation=1 runtime-filters-memory=1.00MB
+13:AGGREGATE [STREAMING]
 |  output: sum(ss_ext_list_price - ss_ext_discount_amt)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=52.25MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
-05:HASH JOIN [INNER JOIN, PARTITIONED]
+12:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: ss_customer_sk = c_customer_sk
 |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
 |  runtime filters: RF006[bloom] <- c_customer_sk
 |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0
-|  tuple-ids=1,2,0 row-size=177B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 01(OPEN)
+|  tuple-ids=11,12,10 row-size=177B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 08(OPEN)
 |
 |--34:EXCHANGE [HASH(c_customer_sk)]
 |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0 row-size=153B cardinality=100.00K
-|  |  in pipelines: 01(GETNEXT)
+|  |  tuple-ids=10 row-size=153B cardinality=100.00K
+|  |  in pipelines: 08(GETNEXT)
 |  |
 |  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Host Resources: mem-estimate=130.00MB mem-reservation=10.00MB thread-reservation=2 runtime-filters-memory=2.00MB
-|  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  Per-Host Resources: mem-estimate=131.00MB mem-reservation=11.00MB thread-reservation=2 runtime-filters-memory=3.00MB
+|  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |     mem-estimate=128.00MB mem-reservation=8.00MB thread-reservation=1
-|     tuple-ids=0 row-size=153B cardinality=100.00K
-|     in pipelines: 01(GETNEXT)
+|     tuple-ids=10 row-size=153B cardinality=100.00K
+|     in pipelines: 08(GETNEXT)
 |
 33:EXCHANGE [HASH(ss_customer_sk)]
 |  mem-estimate=4.59MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=1,2 row-size=24B cardinality=589.03K
-|  in pipelines: 02(GETNEXT)
+|  tuple-ids=11,12 row-size=24B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 Per-Host Resources: mem-estimate=51.95MB mem-reservation=5.94MB thread-reservation=2 runtime-filters-memory=2.00MB
-04:HASH JOIN [INNER JOIN, BROADCAST]
+11:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: ss_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  runtime filters: RF008[bloom] <- d_date_sk
 |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=1,2 row-size=24B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 03(OPEN)
+|  tuple-ids=11,12 row-size=24B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 10(OPEN)
 |
 |--32:EXCHANGE [BROADCAST]
 |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=2 row-size=8B cardinality=373
-|  |  in pipelines: 03(GETNEXT)
+|  |  tuple-ids=12 row-size=8B cardinality=373
+|  |  in pipelines: 10(GETNEXT)
 |  |
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Host Resources: mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=2
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
-|     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
-|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     mem-estimate=32.00MB mem-reservation=512.00KB thread-reservation=1
-|     tuple-ids=2 row-size=8B cardinality=373
-|     in pipelines: 03(GETNEXT)
+|     tuple-ids=12 row-size=8B cardinality=373
+|     in pipelines: 10(GETNEXT)
 |
-02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
    HDFS partitions=1824/1824 files=1824 size=201.02MB
    runtime filters: RF008[bloom] -> ss_sold_date_sk, RF006[bloom] -> ss_customer_sk
    stored statistics:
@@ -836,13 +834,13 @@ Per-Host Resources: mem-estimate=51.95MB mem-reservation=5.94MB thread-reservati
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
    mem-estimate=48.00MB mem-reservation=2.00MB thread-reservation=1
-   tuple-ids=1 row-size=16B cardinality=2.88M
-   in pipelines: 02(GETNEXT)
+   tuple-ids=11 row-size=16B cardinality=2.88M
+   in pipelines: 09(GETNEXT)
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=186.75MB Threads=40
-Per-Host Resource Estimates: Memory=577MB
+Max Per-Host Resource Reservation: Memory=589.88MB Threads=40
+Per-Host Resource Estimates: Memory=953MB
 F24:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=485.79KB mem-reservation=0B thread-reservation=1
+|  Per-Instance Resources: mem-estimate=49.95KB mem-reservation=0B thread-reservation=1
 PLAN-ROOT SINK
 |  output exprs: customer_id, customer_first_name, customer_last_name, customer_preferred_cust_flag
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
@@ -850,16 +848,16 @@ PLAN-ROOT SINK
 55:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
 |  limit: 100
-|  mem-estimate=485.79KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=40 row-size=77B cardinality=0
+|  mem-estimate=49.95KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=40 row-size=77B cardinality=100
 |  in pipelines: 31(GETNEXT)
 |
 F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
-Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reservation=1
+Per-Instance Resources: mem-estimate=45.02MB mem-reservation=34.00MB thread-reservation=1
 31:TOP-N [LIMIT=100]
 |  order by: customer_id ASC, customer_first_name ASC, customer_last_name ASC, customer_preferred_cust_flag ASC
-|  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=40 row-size=77B cardinality=0
+|  mem-estimate=7.52KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=40 row-size=77B cardinality=100
 |  in pipelines: 31(GETNEXT), 36(OPEN)
 |
 30:HASH JOIN [INNER JOIN, BROADCAST]
@@ -867,49 +865,49 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  other predicates: CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN (year_total * CAST(1.0000 AS DECIMAL(5,4))) / year_total ELSE CAST(0 AS DECIMAL(38,6)) END > CASE WHEN year_total > CAST(0 AS DECIMAL(3,0)) THEN (year_total * CAST(1.0000 AS DECIMAL(5,4))) / year_total ELSE CAST(0 AS DECIMAL(38,6)) END
-|  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18,28,38 row-size=225B cardinality=0
+|  mem-estimate=0B mem-reservation=0B spill-buffer=512.00KB thread-reservation=0
+|  tuple-ids=18,8,28,38 row-size=225B cardinality=589.03K
 |  in pipelines: 36(GETNEXT), 53(OPEN)
 |
 |--F25:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=4.92MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  Per-Instance Resources: mem-estimate=24.26MB mem-reservation=18.00MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: customer_id
 |  |  runtime filters: RF000[bloom] <- customer_id
-|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
+|  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=512.00KB thread-reservation=0
 |  |
 |  54:EXCHANGE [BROADCAST]
-|  |  mem-estimate=48.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=38 row-size=44B cardinality=0
+|  |  mem-estimate=6.26MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=38 row-size=44B cardinality=148.00K
 |  |  in pipelines: 53(GETNEXT)
 |  |
 |  F23:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=10.17MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=44.17MB mem-reservation=34.00MB thread-reservation=1
 |  21:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=38 row-size=44B cardinality=0
+|  |  tuple-ids=38 row-size=44B cardinality=148.00K
 |  |  in pipelines: 53(GETNEXT)
 |  |
 |  53:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 53(GETNEXT), 23(OPEN)
 |  |
 |  52:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=173.12KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=10.17MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F20:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=15.53MB mem-reservation=2.00MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=39.53MB mem-reservation=34.00MB thread-reservation=1
 |  27:AGGREGATE [STREAMING]
 |  |  output: sum(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=37 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=37 row-size=169B cardinality=148.00K
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  26:HASH JOIN [INNER JOIN, BROADCAST]
@@ -957,11 +955,10 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  in pipelines: 23(GETNEXT), 22(OPEN)
 |  |
 |  |--F27:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=1 instances=1
-|  |  |  Per-Instance Resources: mem-estimate=28.15MB mem-reservation=18.00MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=27.15MB mem-reservation=17.00MB thread-reservation=1
 |  |  JOIN BUILD
 |  |  |  join-table-id=02 plan-id=03 cohort-id=02
 |  |  |  build expressions: c_customer_sk
-|  |  |  runtime filters: RF020[bloom] <- c_customer_sk
 |  |  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
 |  |  |
 |  |  50:EXCHANGE [HASH(c_customer_sk)]
@@ -987,11 +984,11 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  in pipelines: 23(GETNEXT)
 |  |
 |  F18:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=32.00MB mem-reservation=8.00MB thread-reservation=1
 |  23:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
 |     HDFS partitions=1/1 files=2 size=45.09MB
-|     runtime filters: RF018[bloom] -> ws_sold_date_sk, RF020[bloom] -> ws_bill_customer_sk
+|     runtime filters: RF018[bloom] -> ws_sold_date_sk
 |     stored statistics:
 |       table: rows=719.38K size=45.09MB
 |       columns: all
@@ -1005,11 +1002,11 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18,28 row-size=181B cardinality=0
+|  tuple-ids=18,8,28 row-size=181B cardinality=589.03K
 |  in pipelines: 36(GETNEXT), 47(OPEN)
 |
 |--F28:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=4.92MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  Per-Instance Resources: mem-estimate=5.54MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
 |  |  build expressions: customer_id
@@ -1017,37 +1014,37 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
 |  |
 |  48:EXCHANGE [BROADCAST]
-|  |  mem-estimate=48.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=28 row-size=44B cardinality=0
+|  |  mem-estimate=683.94KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=28 row-size=44B cardinality=14.80K
 |  |  in pipelines: 47(GETNEXT)
 |  |
 |  F17:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=10.17MB mem-reservation=1.94MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=44.17MB mem-reservation=34.00MB thread-reservation=1
 |  14:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=28 row-size=44B cardinality=0
+|  |  tuple-ids=28 row-size=44B cardinality=14.80K
 |  |  in pipelines: 47(GETNEXT)
 |  |
 |  47:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
 |  |  having: sum(ws_ext_list_price - ws_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=14.80K
 |  |  in pipelines: 47(GETNEXT), 16(OPEN)
 |  |
 |  46:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=173.12KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=10.17MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=148.00K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  F14:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=15.53MB mem-reservation=2.00MB thread-reservation=1
+|  Per-Instance Resources: mem-estimate=39.53MB mem-reservation=34.00MB thread-reservation=1
 |  20:AGGREGATE [STREAMING]
 |  |  output: sum(ws_ext_list_price - ws_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=27 row-size=169B cardinality=0
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=27 row-size=169B cardinality=148.00K
 |  |  in pipelines: 16(GETNEXT)
 |  |
 |  19:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1144,57 +1141,59 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  hash-table-id=06
 |  hash predicates: customer_id = customer_id
 |  fk/pk conjuncts: assumed fk/pk
-|  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=8,18 row-size=137B cardinality=0
+|  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
+|  tuple-ids=18,8 row-size=137B cardinality=589.03K
 |  in pipelines: 36(GETNEXT), 41(OPEN)
 |
 |--F31:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=4.44MB mem-reservation=3.88MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=13.25MB mem-reservation=10.50MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  JOIN BUILD
 |  |  join-table-id=06 plan-id=07 cohort-id=01
 |  |  build expressions: customer_id
-|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0
+|  |  runtime filters: RF004[bloom] <- customer_id
+|  |  mem-estimate=9.50MB mem-reservation=9.50MB spill-buffer=256.00KB thread-reservation=0
 |  |
 |  42:EXCHANGE [BROADCAST]
-|  |  mem-estimate=581.79KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=18 row-size=93B cardinality=0
+|  |  mem-estimate=2.75MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=8 row-size=44B cardinality=58.90K
 |  |  in pipelines: 41(GETNEXT)
 |  |
 |  F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
-|  Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reservation=1
-|  07:UNION
+|  Per-Instance Resources: mem-estimate=45.01MB mem-reservation=34.00MB thread-reservation=1
+|  00:UNION
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=18 row-size=93B cardinality=0
+|  |  tuple-ids=8 row-size=44B cardinality=58.90K
 |  |  in pipelines: 41(GETNEXT)
 |  |
 |  41:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ss_ext_list_price - ss_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 41(GETNEXT), 09(OPEN)
+|  |  having: sum(ss_ext_list_price - ss_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=58.90K
+|  |  in pipelines: 41(GETNEXT), 02(OPEN)
 |  |
 |  40:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  |  mem-estimate=1.01MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=11.01MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F09:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
-|  Per-Instance Resources: mem-estimate=14.68MB mem-reservation=2.00MB thread-reservation=1
-|  13:AGGREGATE [STREAMING]
+|  Per-Instance Resources: mem-estimate=38.68MB mem-reservation=34.00MB thread-reservation=1
+|  06:AGGREGATE [STREAMING]
 |  |  output: sum(ss_ext_list_price - ss_ext_discount_amt)
 |  |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=13 row-size=169B cardinality=0
-|  |  in pipelines: 09(GETNEXT)
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  |  tuple-ids=3 row-size=169B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
-|  12:HASH JOIN [INNER JOIN, PARTITIONED]
+|  05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=07
 |  |  hash predicates: ss_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
-|  |  tuple-ids=11,12,10 row-size=177B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 08(OPEN)
+|  |  tuple-ids=1,2,0 row-size=177B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 01(OPEN)
 |  |
 |  |--F32:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
 |  |  |  Per-Instance Resources: mem-estimate=15.90MB mem-reservation=5.75MB thread-reservation=1 runtime-filters-memory=1.00MB
@@ -1206,13 +1205,13 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  |
 |  |  39:EXCHANGE [HASH(c_customer_sk)]
 |  |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=10 row-size=153B cardinality=100.00K
-|  |  |  in pipelines: 08(GETNEXT)
+|  |  |  tuple-ids=0 row-size=153B cardinality=100.00K
+|  |  |  in pipelines: 01(GETNEXT)
 |  |  |
 |  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
-|  |  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
 |  |     stored statistics:
@@ -1220,24 +1219,24 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |  |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|  |     tuple-ids=10 row-size=153B cardinality=100.00K
-|  |     in pipelines: 08(GETNEXT)
+|  |     tuple-ids=0 row-size=153B cardinality=100.00K
+|  |     in pipelines: 01(GETNEXT)
 |  |
 |  38:EXCHANGE [HASH(ss_customer_sk)]
 |  |  mem-estimate=4.68MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=11,12 row-size=24B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT)
+|  |  tuple-ids=1,2 row-size=24B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT)
 |  |
 |  F06:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
 |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=1
-|  11:HASH JOIN [INNER JOIN, BROADCAST]
+|  04:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=08
 |  |  hash predicates: ss_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=11,12 row-size=24B cardinality=589.03K
-|  |  in pipelines: 09(GETNEXT), 10(OPEN)
+|  |  tuple-ids=1,2 row-size=24B cardinality=589.03K
+|  |  in pipelines: 02(GETNEXT), 03(OPEN)
 |  |
 |  |--F33:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
@@ -1249,25 +1248,25 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |  |  |
 |  |  37:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=12 row-size=8B cardinality=373
-|  |  |  in pipelines: 10(GETNEXT)
+|  |  |  tuple-ids=2 row-size=8B cardinality=373
+|  |  |  in pipelines: 03(GETNEXT)
 |  |  |
 |  |  F07:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=1
-|  |  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
 |  |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
-|  |     tuple-ids=12 row-size=8B cardinality=373
-|  |     in pipelines: 10(GETNEXT)
+|  |     tuple-ids=2 row-size=8B cardinality=373
+|  |     in pipelines: 03(GETNEXT)
 |  |
-|  09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+|  02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
 |     HDFS partitions=1824/1824 files=1824 size=201.02MB
 |     runtime filters: RF012[bloom] -> ss_sold_date_sk, RF010[bloom] -> ss_customer_sk
 |     stored statistics:
@@ -1276,43 +1275,42 @@ Per-Instance Resources: mem-estimate=11.01MB mem-reservation=1.94MB thread-reser
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
 |     mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
-|     tuple-ids=11 row-size=16B cardinality=2.88M
-|     in pipelines: 09(GETNEXT)
+|     tuple-ids=1 row-size=16B cardinality=2.88M
+|     in pipelines: 02(GETNEXT)
 |
-00:UNION
+07:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=8 row-size=44B cardinality=0
+|  tuple-ids=18 row-size=93B cardinality=589.03K
 |  in pipelines: 36(GETNEXT)
 |
 36:AGGREGATE [FINALIZE]
 |  output: sum:merge(ss_ext_list_price - ss_ext_discount_amt)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  having: sum(ss_ext_list_price - ss_ext_discount_amt) > CAST(0 AS DECIMAL(3,0))
-|  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 36(GETNEXT), 02(OPEN)
+|  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 36(GETNEXT), 09(OPEN)
 |
 35:EXCHANGE [HASH(c_customer_id,c_first_name,c_last_name,c_preferred_cust_flag,c_birth_country,c_login,c_email_address,d_year)]
-|  mem-estimate=1.01MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=11.01MB mem-reservation=0B thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F03:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
-Per-Instance Resources: mem-estimate=14.68MB mem-reservation=2.00MB thread-reservation=1
-06:AGGREGATE [STREAMING]
+Per-Instance Resources: mem-estimate=38.68MB mem-reservation=34.00MB thread-reservation=1
+13:AGGREGATE [STREAMING]
 |  output: sum(ss_ext_list_price - ss_ext_discount_amt)
 |  group by: c_customer_id, c_first_name, c_last_name, c_preferred_cust_flag, c_birth_country, c_login, c_email_address, d_year
-|  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=169B cardinality=0
-|  in pipelines: 02(GETNEXT)
+|  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
+|  tuple-ids=13 row-size=169B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
-05:HASH JOIN [INNER JOIN, PARTITIONED]
+12:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash-table-id=09
 |  hash predicates: ss_customer_sk = c_customer_sk
 |  fk/pk conjuncts: ss_customer_sk = c_customer_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
-|  tuple-ids=1,2,0 row-size=177B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 01(OPEN)
+|  tuple-ids=11,12,10 row-size=177B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 08(OPEN)
 |
 |--F34:PLAN FRAGMENT [HASH(ss_customer_sk)] hosts=3 instances=6
 |  |  Per-Instance Resources: mem-estimate=15.90MB mem-reservation=5.75MB thread-reservation=1 runtime-filters-memory=1.00MB
@@ -1324,38 +1322,38 @@ Per-Instance Resources: mem-estimate=14.68MB mem-reservation=2.00MB thread-reser
 |  |
 |  34:EXCHANGE [HASH(c_customer_sk)]
 |  |  mem-estimate=10.15MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0 row-size=153B cardinality=100.00K
-|  |  in pipelines: 01(GETNEXT)
+|  |  tuple-ids=10 row-size=153B cardinality=100.00K
+|  |  in pipelines: 08(GETNEXT)
 |  |
 |  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=1
-|  01:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  08:SCAN HDFS [tpcds_parquet.customer, RANDOM]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id
+|     runtime filters: RF000[bloom] -> tpcds_parquet.customer.c_customer_id, RF002[bloom] -> tpcds_parquet.customer.c_customer_id, RF004[bloom] -> tpcds_parquet.customer.c_customer_id
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=100.00K
 |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|     tuple-ids=0 row-size=153B cardinality=100.00K
-|     in pipelines: 01(GETNEXT)
+|     tuple-ids=10 row-size=153B cardinality=100.00K
+|     in pipelines: 08(GETNEXT)
 |
 33:EXCHANGE [HASH(ss_customer_sk)]
 |  mem-estimate=4.68MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=1,2 row-size=24B cardinality=589.03K
-|  in pipelines: 02(GETNEXT)
+|  tuple-ids=11,12 row-size=24B cardinality=589.03K
+|  in pipelines: 09(GETNEXT)
 |
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=6
 Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 Per-Instance Resources: mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=1
-04:HASH JOIN [INNER JOIN, BROADCAST]
+11:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash-table-id=10
 |  hash predicates: ss_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: ss_sold_date_sk = d_date_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=1,2 row-size=24B cardinality=589.03K
-|  in pipelines: 02(GETNEXT), 03(OPEN)
+|  tuple-ids=11,12 row-size=24B cardinality=589.03K
+|  in pipelines: 09(GETNEXT), 10(OPEN)
 |
 |--F35:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
@@ -1367,25 +1365,25 @@ Per-Instance Resources: mem-estimate=16.00MB mem-reservation=2.00MB thread-reser
 |  |
 |  32:EXCHANGE [BROADCAST]
 |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=2 row-size=8B cardinality=373
-|  |  in pipelines: 03(GETNEXT)
+|  |  tuple-ids=12 row-size=8B cardinality=373
+|  |  in pipelines: 10(GETNEXT)
 |  |
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=1
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  10:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
-|     predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
-|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2001 AS INT)
+|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
+|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2002 AS INT)
 |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
-|     tuple-ids=2 row-size=8B cardinality=373
-|     in pipelines: 03(GETNEXT)
+|     tuple-ids=12 row-size=8B cardinality=373
+|     in pipelines: 10(GETNEXT)
 |
-02:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
    HDFS partitions=1824/1824 files=1824 size=201.02MB
    runtime filters: RF008[bloom] -> ss_sold_date_sk, RF006[bloom] -> ss_customer_sk
    stored statistics:
@@ -1394,6 +1392,6 @@ Per-Instance Resources: mem-estimate=16.00MB mem-reservation=2.00MB thread-reser
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
    mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
-   tuple-ids=1 row-size=16B cardinality=2.88M
-   in pipelines: 02(GETNEXT)
+   tuple-ids=11 row-size=16B cardinality=2.88M
+   in pipelines: 09(GETNEXT)
 ====