You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2019/09/26 23:04:02 UTC

[impala] branch master updated (288c8c4 -> 93fb918)

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

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


    from 288c8c4  IMPALA-8755: Frontend support for Z-ordering
     new 0ff7c81  IMPALA-2312: simplify stopwatch ElapsedTime()
     new 93fb918  IMPALA-8647: fix round-to-zero in planner estimates

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:
 be/src/exec/blocking-join-node.cc                  |   2 +-
 be/src/util/stopwatch.h                            |  48 +-
 .../org/apache/impala/planner/AggregationNode.java |   2 +-
 .../apache/impala/planner/DataSourceScanNode.java  |   2 +-
 .../org/apache/impala/planner/HBaseScanNode.java   |   7 +-
 .../org/apache/impala/planner/HdfsScanNode.java    |   4 +-
 .../org/apache/impala/planner/KuduScanNode.java    |   3 +-
 .../java/org/apache/impala/planner/PlanNode.java   |  14 +
 .../java/org/apache/impala/planner/SelectNode.java |   3 +-
 .../org/apache/impala/planner/CardinalityTest.java |  52 +-
 .../queries/PlannerTest/analytic-fns.test          |   4 +-
 .../queries/PlannerTest/subquery-rewrite.test      | 824 ++++++++++-----------
 .../queries/PlannerTest/tpch-nested.test           | 244 +++---
 .../queries/PlannerTest/views.test                 | 120 +--
 14 files changed, 663 insertions(+), 666 deletions(-)


[impala] 02/02: IMPALA-8647: fix round-to-zero in planner estimates

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

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

commit 93fb9182b4158baf6118c166acc92c7caab16ec4
Author: Tim Armstrong <ta...@cloudera.com>
AuthorDate: Mon Sep 23 21:46:11 2019 -0700

    IMPALA-8647: fix round-to-zero in planner estimates
    
    Zero estimates in query plans can be quite dangerous
    (for causing bad plans) because they propagate up the
    plan tree, causing many more estimates to be zero.
    
    E.g. if the estimate for the right side of the join
    becomes 0, but the left side of the join has 1 trillion
    rows, the planner will think that the join produces
    zero rows and make further decisions accordingly.
    This could be catastrophic if the right side of the
    join produces even a single row.
    
    This adds some helper functions that avoid rounding
    to zero when multiplying selectivities and uses them
    in places where selectivities were computed. The scan
    nodes already bumped up the estimates anyway, so this
    doesn't change cardinality estimates or plans, but
    SelectNode and AggregationNode will not round to zero
    after this change.
    
    I looked at using Math.ceil() instead of Math.round(),
    but it changed estimates slightly in a lot of plans,
    which didn't seem worth the hassle.
    
    Testing:
    Added targeted cardinality tests for SelectNode and
    AggregationNode.
    
    Updated and sanity checked planner tests where estimates
    changed.
    
    Change-Id: I148e9f1aede0a1e99b875b0e6af534f4bccf49b7
    Reviewed-on: http://gerrit.cloudera.org:8080/14289
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 .../org/apache/impala/planner/AggregationNode.java |   2 +-
 .../apache/impala/planner/DataSourceScanNode.java  |   2 +-
 .../org/apache/impala/planner/HBaseScanNode.java   |   7 +-
 .../org/apache/impala/planner/HdfsScanNode.java    |   4 +-
 .../org/apache/impala/planner/KuduScanNode.java    |   3 +-
 .../java/org/apache/impala/planner/PlanNode.java   |  14 +
 .../java/org/apache/impala/planner/SelectNode.java |   3 +-
 .../org/apache/impala/planner/CardinalityTest.java |  52 +-
 .../queries/PlannerTest/analytic-fns.test          |   4 +-
 .../queries/PlannerTest/subquery-rewrite.test      | 824 ++++++++++-----------
 .../queries/PlannerTest/tpch-nested.test           | 244 +++---
 .../queries/PlannerTest/views.test                 | 120 +--
 12 files changed, 642 insertions(+), 637 deletions(-)

diff --git a/fe/src/main/java/org/apache/impala/planner/AggregationNode.java b/fe/src/main/java/org/apache/impala/planner/AggregationNode.java
index 5a03452..625e832 100644
--- a/fe/src/main/java/org/apache/impala/planner/AggregationNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/AggregationNode.java
@@ -229,7 +229,7 @@ public class AggregationNode extends PlanNode {
 
     // Take conjuncts into account.
     if (cardinality_ > 0) {
-      cardinality_ = (long) Math.round((double) cardinality_ * computeSelectivity());
+      cardinality_ = applyConjunctsSelectivity(cardinality_);
     }
     cardinality_ = capCardinalityAtLimit(cardinality_);
   }
diff --git a/fe/src/main/java/org/apache/impala/planner/DataSourceScanNode.java b/fe/src/main/java/org/apache/impala/planner/DataSourceScanNode.java
index c65677f..ee7e4ee 100644
--- a/fe/src/main/java/org/apache/impala/planner/DataSourceScanNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/DataSourceScanNode.java
@@ -267,7 +267,7 @@ public class DataSourceScanNode extends ScanNode {
     super.computeStats(analyzer);
     inputCardinality_ = numRowsEstimate_;
     cardinality_ = numRowsEstimate_;
-    cardinality_ *= computeSelectivity();
+    cardinality_ = applyConjunctsSelectivity(cardinality_);
     cardinality_ = Math.max(1, cardinality_);
     cardinality_ = capCardinalityAtLimit(cardinality_);
 
diff --git a/fe/src/main/java/org/apache/impala/planner/HBaseScanNode.java b/fe/src/main/java/org/apache/impala/planner/HBaseScanNode.java
index 13960fa..c7fadc7 100644
--- a/fe/src/main/java/org/apache/impala/planner/HBaseScanNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/HBaseScanNode.java
@@ -330,7 +330,8 @@ public class HBaseScanNode extends ScanNode {
         // Is there some third, ulitimate fallback?
         // Apply estimated key range selectivity from original key conjuncts
         if (cardinality_ > 0 && keyConjuncts_ != null) {
-          cardinality_ *= computeCombinedSelectivity(keyConjuncts_);
+          cardinality_ =
+            applySelectivity(cardinality_, computeCombinedSelectivity(keyConjuncts_));
         }
       } else {
         // Use the HBase sampling scan to estimate cardinality. Note that,
@@ -346,9 +347,7 @@ public class HBaseScanNode extends ScanNode {
     inputCardinality_ = cardinality_;
 
     if (cardinality_ > 0) {
-      cardinality_ = Math.round(cardinality_ * computeSelectivity());
-      // IMPALA-2165: Avoid setting the cardinality to 0 after rounding.
-      cardinality_ = Math.max(1, cardinality_);
+      cardinality_ = applyConjunctsSelectivity(cardinality_);
     } else {
       // Safe guard for cardinality_ < -1, e.g. when hbase sampling fails and numRows
       // in HMS is abnormally set to be < -1.
diff --git a/fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java b/fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
index 716b611..febc287 100644
--- a/fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java
@@ -1143,9 +1143,7 @@ public class HdfsScanNode extends ScanNode {
         LOG.trace("cardinality_=" + Long.toString(cardinality_) +
                   " sel=" + Double.toString(computeSelectivity()));
       }
-      cardinality_ = Math.round(cardinality_ * computeSelectivity());
-      // IMPALA-2165: Avoid setting the cardinality to 0 after rounding.
-      cardinality_ = Math.max(cardinality_, 1);
+      cardinality_ = applyConjunctsSelectivity(cardinality_);
     }
     cardinality_ = capCardinalityAtLimit(cardinality_);
     if (LOG.isTraceEnabled()) {
diff --git a/fe/src/main/java/org/apache/impala/planner/KuduScanNode.java b/fe/src/main/java/org/apache/impala/planner/KuduScanNode.java
index 90e1b0f..0c86a65 100644
--- a/fe/src/main/java/org/apache/impala/planner/KuduScanNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/KuduScanNode.java
@@ -263,8 +263,7 @@ public class KuduScanNode extends ScanNode {
 
     // Update the cardinality
     inputCardinality_ = cardinality_ = kuduTable_.getNumRows();
-    cardinality_ *= computeSelectivity();
-    cardinality_ = Math.min(Math.max(1, cardinality_), kuduTable_.getNumRows());
+    cardinality_ = applyConjunctsSelectivity(cardinality_);
     cardinality_ = capCardinalityAtLimit(cardinality_);
     if (LOG.isTraceEnabled()) {
       LOG.trace("computeStats KuduScan: cardinality=" + Long.toString(cardinality_));
diff --git a/fe/src/main/java/org/apache/impala/planner/PlanNode.java b/fe/src/main/java/org/apache/impala/planner/PlanNode.java
index cd127bc..cfde915 100644
--- a/fe/src/main/java/org/apache/impala/planner/PlanNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/PlanNode.java
@@ -610,6 +610,20 @@ abstract public class PlanNode extends TreeNode<PlanNode> {
     return computeCombinedSelectivity(conjuncts_);
   }
 
+  // Compute the cardinality after applying conjuncts_ based on 'preConjunctCardinality'.
+  protected long applyConjunctsSelectivity(long preConjunctCardinality) {
+    return applySelectivity(preConjunctCardinality, computeSelectivity());
+  }
+
+  // Compute the cardinality after applying conjuncts with 'selectivity', based on
+  // 'preConjunctCardinality'.
+  protected long applySelectivity(long preConjunctCardinality, double selectivity) {
+    long cardinality = (long) Math.round(preConjunctCardinality * selectivity);
+    // IMPALA-8647: don't round cardinality down to zero for safety.
+    if (cardinality == 0 && preConjunctCardinality > 0) return 1;
+    return cardinality;
+  }
+
   // Convert this plan node into msg (excluding children), which requires setting
   // the node type and the node-specific field.
   protected abstract void toThrift(TPlanNode msg);
diff --git a/fe/src/main/java/org/apache/impala/planner/SelectNode.java b/fe/src/main/java/org/apache/impala/planner/SelectNode.java
index c657d28..a5437c0 100644
--- a/fe/src/main/java/org/apache/impala/planner/SelectNode.java
+++ b/fe/src/main/java/org/apache/impala/planner/SelectNode.java
@@ -71,8 +71,7 @@ public class SelectNode extends PlanNode {
     if (getChild(0).cardinality_ == -1) {
       cardinality_ = -1;
     } else {
-      cardinality_ =
-          Math.round(((double) getChild(0).cardinality_) * computeSelectivity());
+      cardinality_ = applyConjunctsSelectivity(getChild(0).cardinality_);
       Preconditions.checkState(cardinality_ >= 0);
     }
     cardinality_ = capCardinalityAtLimit(cardinality_);
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 4cba270..555508d 100644
--- a/fe/src/test/java/org/apache/impala/planner/CardinalityTest.java
+++ b/fe/src/test/java/org/apache/impala/planner/CardinalityTest.java
@@ -312,12 +312,21 @@ public class CardinalityTest extends PlannerTestBase {
     // Estimated cardinality of functional.tinytable is 2.
     // Estimated cardinality of the resulting AggregationNode's involving
     // GROUP BY is 2 for both AggregationNode's.
-    verifyApproxCardinality("SELECT COUNT(a) FROM functional.tinytable "
+    verifyCardinality("SELECT COUNT(a) FROM functional.tinytable "
         + "GROUP BY a", 2, true, ImmutableSet.of(),
         pathToFirstAggregationNode, AggregationNode.class);
-    verifyApproxCardinality("SELECT COUNT(a) FROM functional.tinytable "
+    verifyCardinality("SELECT COUNT(a) FROM functional.tinytable "
         + "GROUP BY a", 2, true, ImmutableSet.of(),
         pathToSecondAggregationNode, AggregationNode.class);
+
+    // Test that having predicate reduces cardinality on merge aggregation
+    // but not to zero. Preaggregation should not be affected.
+    verifyCardinality("SELECT COUNT(a) FROM functional.tinytable "
+        + "GROUP BY a HAVING COUNT(a) > 0", 1, true, ImmutableSet.of(),
+        pathToFirstAggregationNode, AggregationNode.class);
+    verifyCardinality("SELECT COUNT(a) FROM functional.tinytable "
+        + "GROUP BY a HAVING COUNT(a) > 0", 2, true, ImmutableSet.of(),
+        pathToSecondAggregationNode, AggregationNode.class);
   }
 
   @Test
@@ -604,14 +613,6 @@ public class CardinalityTest extends PlannerTestBase {
         path, HdfsScanNode.class);
   }
 
-  // TODO(IMPALA-8647): It seems that the cardinality of the SelectNode should be 1
-  // instead of 0. Specifically, if we had executed "compute stats
-  // functional_parquet.alltypestiny" before issuing this
-  // SQL statement, the returned cardinality of this SelectNode would be 1
-  // instead of 0. Not very sure if this is a bug. It looks like the cardinality
-  // of a SelectNode depends on whether there is stats information associated
-  // with its child node. The cardinality of a SelectNode would still be 0
-  // even if its child node (ExchangeNode in this case) has a non-zero cardinality.
   @Test
   public void testSelectNode() {
     // Create the path to the SelectNode of interest
@@ -621,15 +622,28 @@ public class CardinalityTest extends PlannerTestBase {
     // There is no available statistics in functional_parquet.alltypestiny.
     // True cardinality of functional_parquet.alltypestiny is 8.
     // Estimated cardinality of functional_parquet.alltypestiny is 523.
-    // There is no available statistics in functional_parquet.alltypessmall.
-    // True cardinality of functional_parquet.alltypessmall is 100.
-    // Estimated cardinality of functional_parquet.alltypessmall is 649.
-    String subQuery = "(SELECT int_col "
+    String singleRowSubQuery = "(SELECT int_col "
         + "FROM functional_parquet.alltypestiny "
         + "LIMIT 1)";
+    // There are no available statistics in functional_parquet.alltypessmall.
+    // True cardinality of functional_parquet.alltypessmall is 100.
+    // Estimated cardinality of functional_parquet.alltypessmall is 649.
+    verifyApproxCardinality("SELECT * "
+        + "FROM functional_parquet.alltypessmall "
+        + "WHERE 1 IN " + singleRowSubQuery, 1, true,
+        ImmutableSet.of(), path, SelectNode.class);
+
+
+    String manyRowSubQuery = "(SELECT int_col "
+        + "FROM functional_parquet.alltypes "
+        + "LIMIT 1000)";
+    // There are no available statistics in functional_parquet.alltypes.
+    // True cardinality of functional_parquet.alltypes is 7300.
+    // Estimated cardinality of functional_parquet.alltypes is 12740.
+    // Estimated selectivity of predicate is 10%.
     verifyApproxCardinality("SELECT * "
         + "FROM functional_parquet.alltypessmall "
-        + "WHERE 1 IN " + subQuery, 0, true,
+        + "WHERE 1 IN " + manyRowSubQuery, 100, true,
         ImmutableSet.of(), path, SelectNode.class);
   }
 
@@ -639,16 +653,16 @@ public class CardinalityTest extends PlannerTestBase {
     // in a distributed plan.
     List<Integer> path = Arrays.asList(0, 1, 0);
 
-    // There is no available statistics in functional_parquet.alltypestiny.
+    // There are no available statistics in functional_parquet.alltypestiny.
     // True cardinality of functional_parquet.alltypestiny is 8.
-    // There is no available statistics in functional_parquet.alltypessmall.
+    // There are no available statistics in functional_parquet.alltypessmall.
     // True cardinality of functional_parquet.alltypessmall is 100.
     String subQuery = "(SELECT int_col "
         + "FROM functional_parquet.alltypestiny "
         + "LIMIT 1)";
     verifyApproxCardinality("SELECT * "
-        + "FROM functional_parquet.alltypessmall "
-        + "WHERE 1 IN " + subQuery, 0, true,
+        + "FROM functional_parquet.alltypes "
+        + "WHERE 1 IN " + subQuery, 1, true,
         ImmutableSet.of(PlannerTestOption.DISABLE_HDFS_NUM_ROWS_ESTIMATE),
         path, SelectNode.class);
   }
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/analytic-fns.test b/testdata/workloads/functional-planner/queries/PlannerTest/analytic-fns.test
index 735dda6..ce1b11e 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/analytic-fns.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/analytic-fns.test
@@ -2166,7 +2166,7 @@ PLAN-ROOT SINK
 |
 03:SELECT
 |  predicates: id = 1, int_col < 10, sum(int_col) = 4
-|  row-size=20B cardinality=0
+|  row-size=20B cardinality=1
 |
 02:ANALYTIC
 |  functions: sum(int_col)
@@ -2315,7 +2315,7 @@ PLAN-ROOT SINK
 |
 03:SELECT
 |  predicates: month = int_col
-|  row-size=29B cardinality=0
+|  row-size=29B cardinality=1
 |
 02:ANALYTIC
 |  functions: sum(id)
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/subquery-rewrite.test b/testdata/workloads/functional-planner/queries/PlannerTest/subquery-rewrite.test
index 7953e80..530050f 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/subquery-rewrite.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/subquery-rewrite.test
@@ -12,11 +12,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     row-size=4B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=89B cardinality=7.30K
 ====
@@ -33,11 +33,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     row-size=4B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ====
 # Correlated NOT IN rewritten into a null-aware anti join
@@ -57,11 +57,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=730
 |
 |--01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     row-size=16B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: a.int_col < 100
    row-size=89B cardinality=730
 ====
@@ -79,11 +79,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypes b]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ====
 # Subquery with predicate in the WHERE clause
@@ -105,12 +105,12 @@ PLAN-ROOT SINK
 |  row-size=9B cardinality=1.10K
 |
 |--01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: g.bigint_col < 10
 |     row-size=16B cardinality=1.10K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: bool_col = FALSE
    runtime filters: RF000 -> a.id, RF001 -> int_col
    row-size=9B cardinality=3.65K
@@ -132,12 +132,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: (t2.int_col IS NOT NULL AND (t2.int_col < 0 OR t2.int_col > 10) OR t2.bigint_col IS NOT NULL AND (t2.bigint_col < 0 OR t2.bigint_col > 10))
 |     row-size=12B cardinality=730
 |
 00:SCAN HDFS [functional.alltypes t1]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> t1.int_col
    row-size=89B cardinality=7.30K
 ====
@@ -155,11 +155,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     row-size=12B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> t.int_col + 1
    row-size=89B cardinality=7.30K
 ====
@@ -178,7 +178,7 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=730
 |
 |--02:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=1B cardinality=8
 |
 03:HASH JOIN [LEFT SEMI JOIN]
@@ -187,12 +187,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=730
 |
 |--01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: bool_col = FALSE
 |     row-size=5B cardinality=5.50K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: t.bigint_col < 1000
    runtime filters: RF000 -> t.id
    row-size=89B cardinality=730
@@ -215,7 +215,7 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=16
 |
 |--02:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: bool_col = FALSE
 |     row-size=5B cardinality=4
 |
@@ -225,11 +225,11 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=7.81K
 |
 |--01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> a.int_col, RF002 -> a.id
    row-size=8B cardinality=11.00K
 ====
@@ -259,16 +259,16 @@ PLAN-ROOT SINK
 |  |  row-size=13B cardinality=80
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny t]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=4B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     runtime filters: RF004 -> s.int_col
 |     row-size=9B cardinality=100
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: a.int_col < 10
    runtime filters: RF000 -> a.bool_col, RF001 -> a.id
    row-size=9B cardinality=1.10K
@@ -293,7 +293,7 @@ PLAN-ROOT SINK
 |  row-size=13B cardinality=33
 |
 |--02:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=4B cardinality=8
 |
 03:HASH JOIN [LEFT OUTER JOIN]
@@ -302,12 +302,12 @@ PLAN-ROOT SINK
 |  row-size=13B cardinality=41.95K
 |
 |--01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: t.bool_col = FALSE
 |     row-size=5B cardinality=3.65K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> a.id
    row-size=8B cardinality=11.00K
 ====
@@ -336,17 +336,17 @@ PLAN-ROOT SINK
 |  |  row-size=16B cardinality=8
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=4B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: g.bigint_col < 100
 |     runtime filters: RF000 -> id
 |     row-size=16B cardinality=1.10K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: a.bool_col = FALSE
    row-size=5B cardinality=3.65K
 ====
@@ -379,7 +379,7 @@ PLAN-ROOT SINK
 |  |  row-size=29B cardinality=40
 |  |
 |  |--03:SCAN HDFS [functional.alltypestiny n]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     predicates: n.bool_col = FALSE
 |  |     row-size=9B cardinality=4
 |  |
@@ -389,17 +389,17 @@ PLAN-ROOT SINK
 |  |  row-size=20B cardinality=99
 |  |
 |  |--02:SCAN HDFS [functional.alltypessmall s]
-|  |     partitions=4/4 files=4 size=6.32KB
+|  |     HDFS partitions=4/4 files=4 size=6.32KB
 |  |     runtime filters: RF002 -> s.bigint_col
 |  |     row-size=12B cardinality=100
 |  |
 |  01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF004 -> t.id
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> a.int_col
    row-size=8B cardinality=11.00K
 ====
@@ -424,7 +424,7 @@ PLAN-ROOT SINK
 |  |  row-size=16B cardinality=8
 |  |
 |  |--01:SCAN HDFS [functional.alltypestiny a]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=4B cardinality=8
 |  |
 |  03:AGGREGATE [FINALIZE]
@@ -434,12 +434,12 @@ PLAN-ROOT SINK
 |  |  row-size=12B cardinality=99
 |  |
 |  02:SCAN HDFS [functional.alltypessmall]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     runtime filters: RF002 -> functional.alltypessmall.id
 |     row-size=4B cardinality=100
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> t.id
    row-size=89B cardinality=7.30K
 ====
@@ -455,11 +455,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=8
 |
 |--01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=4B cardinality=8
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: a.int_col = 10, a.bool_col = FALSE
    runtime filters: RF000 -> id
    row-size=89B cardinality=516
@@ -482,7 +482,7 @@ PLAN-ROOT SINK
 |  row-size=109B cardinality=91
 |
 |--06:SCAN HDFS [functional.alltypessmall]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     row-size=4B cardinality=100
 |
 07:HASH JOIN [INNER JOIN]
@@ -496,11 +496,11 @@ PLAN-ROOT SINK
 |  |  row-size=89B cardinality=8
 |  |
 |  |--01:SCAN HDFS [functional.alltypestiny]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=4B cardinality=8
 |  |
 |  00:SCAN HDFS [functional.alltypes a]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> a.int_col, RF006 -> id
 |     row-size=89B cardinality=7.30K
 |
@@ -510,11 +510,11 @@ PLAN-ROOT SINK
 |  row-size=20B cardinality=5.50K
 |
 |--04:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 03:SCAN HDFS [functional.alltypesagg g]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: g.bool_col = FALSE
    runtime filters: RF002 -> g.string_col, RF004 -> g.id
    row-size=20B cardinality=5.50K
@@ -534,11 +534,11 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=3.65K
 |
 |--01:SCAN HDFS [functional.alltypesagg a]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     row-size=8B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: t.bool_col = FALSE
    runtime filters: RF000 -> id, RF001 -> t.int_col
    row-size=89B cardinality=3.65K
@@ -565,17 +565,17 @@ PLAN-ROOT SINK
 |  |  row-size=9B cardinality=11
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=4B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: bool_col = FALSE
 |     runtime filters: RF002 -> int_col
 |     row-size=9B cardinality=5.50K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: bigint_col < 1000
    runtime filters: RF000 -> id
    row-size=89B cardinality=730
@@ -602,16 +602,16 @@ PLAN-ROOT SINK
 |  |  row-size=17B cardinality=22
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny s]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=9B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypesagg a]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     runtime filters: RF004 -> a.bigint_col, RF005 -> a.tinyint_col
 |     row-size=17B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id, RF001 -> t.int_col
    row-size=89B cardinality=7.30K
 ====
@@ -635,16 +635,16 @@ PLAN-ROOT SINK
 |  |  row-size=16B cardinality=22
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny s]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=12B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypesagg a]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     runtime filters: RF002 -> a.bigint_col, RF003 -> a.int_col
 |     row-size=16B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=89B cardinality=7.30K
 ====
@@ -662,12 +662,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=730
 |
 |--01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: id < 10
 |     row-size=4B cardinality=730
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id < 10
    runtime filters: RF000 -> id
    row-size=89B cardinality=730
@@ -686,7 +686,7 @@ PLAN-ROOT SINK
 |  row-size=184B cardinality=10
 |
 |--02:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.int_col < 10
 |     row-size=8B cardinality=10
 |
@@ -696,13 +696,13 @@ PLAN-ROOT SINK
 |  row-size=184B cardinality=782
 |
 |--01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: t.int_col < 10
 |     runtime filters: RF000 -> t.id, RF001 -> t.int_col
 |     row-size=89B cardinality=730
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> a.id, RF004 -> a.id
    row-size=95B cardinality=11.00K
 ====
@@ -724,11 +724,11 @@ PLAN-ROOT SINK
 |  row-size=4B cardinality=7.30K
 |
 |--00:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 01:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> a.id
    row-size=4B cardinality=11.00K
 ====
@@ -754,11 +754,11 @@ PLAN-ROOT SINK
 |  |  row-size=10B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypestiny b]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=10B cardinality=8
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: tinyint_col < 10
    runtime filters: RF000 -> a.tinyint_col
    row-size=1B cardinality=1.10K
@@ -780,11 +780,11 @@ PLAN-ROOT SINK
 |  row-size=4B cardinality=7.30K
 |
 |--00:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 01:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    row-size=4B cardinality=11.00K
 ====
 # Correlated NOT EXISTS with an analytic function and a group by clause
@@ -817,17 +817,17 @@ PLAN-ROOT SINK
 |  |  row-size=21B cardinality=50
 |  |
 |  |--01:SCAN HDFS [functional.alltypessmall b]
-|  |     partitions=4/4 files=4 size=6.32KB
+|  |     HDFS partitions=4/4 files=4 size=6.32KB
 |  |     row-size=16B cardinality=100
 |  |
 |  02:SCAN HDFS [functional.alltypes c]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: c.bool_col = FALSE
 |     runtime filters: RF000 -> c.id
 |     row-size=5B cardinality=3.65K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: bool_col = FALSE
    row-size=5B cardinality=5.50K
 ====
@@ -842,13 +842,13 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=8
 |
 |--01:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.id < 5
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # Uncorrelated EXISTS with an analytic function and a group by clause
@@ -865,7 +865,7 @@ PLAN-ROOT SINK
 |  row-size=0B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=0B cardinality=8
 |
 02:AGGREGATE [FINALIZE]
@@ -874,7 +874,7 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=1
 |
 01:SCAN HDFS [functional.alltypesagg]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: tinyint_col = 10
    row-size=17B cardinality=1.22K
 ====
@@ -898,13 +898,13 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=8
 |
 |--01:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.id < 5
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # Uncorrelated NOT exists referencing a WITH clause
@@ -921,13 +921,13 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=8
 |
 |--01:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.id < 0
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # Uncorrelated NOT EXISTS with an analytic function and a group by clause
@@ -944,7 +944,7 @@ PLAN-ROOT SINK
 |  row-size=0B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=0B cardinality=8
 |
 02:AGGREGATE [FINALIZE]
@@ -953,7 +953,7 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=1
 |
 01:SCAN HDFS [functional.alltypesagg]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: tinyint_col = 10
    row-size=17B cardinality=1.22K
 ====
@@ -965,7 +965,7 @@ where not exists (select * from functional.alltypessmall limit 0)
 PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=0B cardinality=8
 ====
 # Multiple nesting levels
@@ -993,17 +993,17 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=8
 |  |
 |  |--01:SCAN HDFS [functional.alltypestiny t]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=8B cardinality=8
 |  |
 |  02:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: g.bool_col = FALSE
 |     runtime filters: RF002 -> g.int_col
 |     row-size=5B cardinality=5.50K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> a.id
    row-size=4B cardinality=7.30K
 ====
@@ -1032,7 +1032,7 @@ PLAN-ROOT SINK
 |  output: count(*)
 |  group by: g.int_col
 |  having: count(*) < 100
-|  row-size=12B cardinality=4
+|  row-size=12B cardinality=1
 |
 09:HASH JOIN [RIGHT OUTER JOIN]
 |  hash predicates: t.id = g.id
@@ -1051,7 +1051,7 @@ PLAN-ROOT SINK
 |  |  |  row-size=21B cardinality=4
 |  |  |
 |  |  |--02:SCAN HDFS [functional.alltypestiny t]
-|  |  |     partitions=4/4 files=4 size=460B
+|  |  |     HDFS partitions=4/4 files=4 size=460B
 |  |  |     predicates: t.bool_col = FALSE
 |  |  |     row-size=5B cardinality=4
 |  |  |
@@ -1061,18 +1061,18 @@ PLAN-ROOT SINK
 |  |  |  row-size=21B cardinality=1.10K
 |  |  |
 |  |  |--00:SCAN HDFS [functional.alltypesagg g]
-|  |  |     partitions=11/11 files=11 size=814.73KB
+|  |  |     HDFS partitions=11/11 files=11 size=814.73KB
 |  |  |     predicates: g.int_col < 100
 |  |  |     runtime filters: RF006 -> g.id
 |  |  |     row-size=17B cardinality=1.10K
 |  |  |
 |  |  01:SCAN HDFS [functional.alltypes a]
-|  |     partitions=24/24 files=24 size=478.45KB
+|  |     HDFS partitions=24/24 files=24 size=478.45KB
 |  |     runtime filters: RF006 -> a.id, RF008 -> a.id
 |  |     row-size=4B cardinality=7.30K
 |  |
 |  03:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.int_col > 10
 |     runtime filters: RF002 -> bigint_col, RF003 -> s.id
 |     row-size=16B cardinality=10
@@ -1083,7 +1083,7 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=3.65K
 |
 04:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: t.bool_col = TRUE
    runtime filters: RF000 -> t.id
    row-size=5B cardinality=3.65K
@@ -1109,12 +1109,12 @@ PLAN-ROOT SINK
 |  |  row-size=12B cardinality=957
 |  |
 |  01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: g.bool_col
 |     row-size=5B cardinality=1.10K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: a.bigint_col < 10
    runtime filters: RF000 -> a.int_col
    row-size=89B cardinality=730
@@ -1137,12 +1137,12 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: g.bool_col = TRUE
 |     row-size=5B cardinality=5.50K
 |
 00:SCAN HDFS [functional.alltypes a]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: a.bigint_col > 10
    row-size=89B cardinality=730
 ====
@@ -1155,20 +1155,20 @@ and a.int_col < 10
 PLAN-ROOT SINK
 |
 03:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=99B cardinality=0
+|  row-size=99B cardinality=1.10K
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: max(id)
 |  |  having: max(id) > 10
-|  |  row-size=4B cardinality=0
+|  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: t.bool_col = FALSE
 |     row-size=5B cardinality=3.65K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: a.int_col < 10
    row-size=95B cardinality=1.10K
 ====
@@ -1200,12 +1200,12 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: t.tinyint_col < 10
 |     row-size=9B cardinality=730
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: a.bool_col = FALSE
    runtime filters: RF000 -> a.id, RF001 -> a.int_col
    row-size=9B cardinality=5.50K
@@ -1244,11 +1244,11 @@ PLAN-ROOT SINK
 |  |  row-size=21B cardinality=50
 |  |
 |  |--03:SCAN HDFS [functional.alltypestiny p]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=4B cardinality=8
 |  |
 |  02:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.bool_col = FALSE
 |     row-size=17B cardinality=50
 |
@@ -1258,12 +1258,12 @@ PLAN-ROOT SINK
 |  row-size=22B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypesagg a]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: a.bool_col = FALSE
 |     row-size=5B cardinality=5.50K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> t.bigint_col
    row-size=17B cardinality=7.30K
 ====
@@ -1289,7 +1289,7 @@ PLAN-ROOT SINK
 |  |  row-size=1B cardinality=1
 |  |
 |  04:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.id < 10
 |     row-size=5B cardinality=10
 |
@@ -1305,7 +1305,7 @@ PLAN-ROOT SINK
 |  |  row-size=12B cardinality=2
 |  |
 |  02:SCAN HDFS [functional.alltypestiny g]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: g.bool_col = FALSE
 |     row-size=13B cardinality=4
 |
@@ -1315,13 +1315,13 @@ PLAN-ROOT SINK
 |  row-size=184B cardinality=3.91K
 |
 |--01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: t.bool_col = FALSE
 |     runtime filters: RF000 -> t.bigint_col
 |     row-size=89B cardinality=3.65K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF002 -> a.id
    row-size=95B cardinality=11.00K
 ====
@@ -1361,16 +1361,16 @@ PLAN-ROOT SINK
 |  |  |  row-size=12B cardinality=4
 |  |  |
 |  |  02:SCAN HDFS [functional.alltypestiny a]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     predicates: a.bool_col = FALSE
 |  |     row-size=5B cardinality=4
 |  |
 |  01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     row-size=16B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> t.id
    row-size=89B cardinality=7.30K
 ====
@@ -1405,12 +1405,12 @@ PLAN-ROOT SINK
 |  |  |  row-size=8B cardinality=1
 |  |  |
 |  |  03:SCAN HDFS [functional.alltypestiny]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     predicates: bool_col = FALSE
 |  |     row-size=1B cardinality=4
 |  |
 |  02:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     row-size=5B cardinality=100
 |
 07:HASH JOIN [LEFT OUTER JOIN]
@@ -1418,11 +1418,11 @@ PLAN-ROOT SINK
 |  row-size=184B cardinality=11.00K
 |
 |--01:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    row-size=95B cardinality=11.00K
 ====
 # Distinct in the outer select block
@@ -1435,23 +1435,23 @@ PLAN-ROOT SINK
 |
 04:AGGREGATE [FINALIZE]
 |  group by: id, bool_col
-|  row-size=5B cardinality=0
+|  row-size=5B cardinality=5.50K
 |
 03:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=13B cardinality=0
+|  row-size=13B cardinality=5.50K
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: count(*)
 |  |  having: count(*) > 100
-|  |  row-size=8B cardinality=0
+|  |  row-size=8B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: id < 5, bool_col = FALSE
 |     row-size=5B cardinality=516
 |
 00:SCAN HDFS [functional.alltypesagg g]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: bool_col = FALSE
    row-size=5B cardinality=5.50K
 ====
@@ -1465,27 +1465,27 @@ PLAN-ROOT SINK
 |
 05:AGGREGATE [FINALIZE]
 |  group by: g.id, g.bool_col, g.tinyint_col, g.smallint_col, g.int_col, g.bigint_col, g.float_col, g.double_col, g.date_string_col, g.string_col, g.timestamp_col, g.year, g.month, g.day
-|  row-size=95B cardinality=0
+|  row-size=95B cardinality=11
 |
 04:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=103B cardinality=0
+|  row-size=103B cardinality=11
 |
 |--03:AGGREGATE [FINALIZE]
 |  |  output: count(id)
 |  |  having: count(id) < 100
-|  |  row-size=8B cardinality=0
+|  |  row-size=8B cardinality=1
 |  |
 |  02:AGGREGATE
 |  |  group by: id
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: int_col < 5
 |     row-size=8B cardinality=1
 |
 00:SCAN HDFS [functional.alltypesagg g]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: g.bigint_col = 1
    row-size=95B cardinality=11
 ====
@@ -1497,20 +1497,20 @@ where (select max(int_col) from functional.alltypesagg where int_col is null) is
 PLAN-ROOT SINK
 |
 03:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=93B cardinality=0
+|  row-size=93B cardinality=8
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: max(int_col)
 |  |  having: max(int_col) IS NULL
-|  |  row-size=4B cardinality=0
+|  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: int_col IS NULL
 |     row-size=4B cardinality=20
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # Correlated aggregate subquery with a count in an IS NULL predicate
@@ -1534,7 +1534,7 @@ PLAN-ROOT SINK
 |  row-size=21B cardinality=4
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: bool_col = FALSE
 |     row-size=9B cardinality=4
 |
@@ -1545,7 +1545,7 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=1.03K
 |
 01:SCAN HDFS [functional.alltypesagg g]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> g.id
    row-size=4B cardinality=11.00K
 ====
@@ -1563,21 +1563,21 @@ PLAN-ROOT SINK
 03:HASH JOIN [LEFT SEMI JOIN]
 |  hash predicates: t.id = g.id
 |  runtime filters: RF000 <- g.id
-|  row-size=89B cardinality=4
+|  row-size=89B cardinality=2
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: max(int_col)
 |  |  group by: g.id
 |  |  having: max(int_col) IS NULL
-|  |  row-size=8B cardinality=20
+|  |  row-size=8B cardinality=2
 |  |
 |  01:SCAN HDFS [functional.alltypesagg g]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: g.int_col IS NULL
 |     row-size=8B cardinality=20
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    predicates: t.bool_col = FALSE
    runtime filters: RF000 -> t.id
    row-size=89B cardinality=4
@@ -1601,12 +1601,12 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypesagg]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: bool_col = FALSE
 |     row-size=1B cardinality=5.50K
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    predicates: t.bigint_col < 100
    runtime filters: RF000 -> t.int_col + 2
    row-size=89B cardinality=1
@@ -1621,20 +1621,20 @@ and t.id < 10
 PLAN-ROOT SINK
 |
 03:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=93B cardinality=0
+|  row-size=93B cardinality=1
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: min(id)
 |  |  having: nullifzero(min(id)) IS NULL
-|  |  row-size=4B cardinality=0
+|  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: s.bool_col = FALSE
 |     row-size=5B cardinality=50
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    predicates: t.id < 10
    row-size=89B cardinality=1
 ====
@@ -1667,11 +1667,11 @@ PLAN-ROOT SINK
 |  |  row-size=12B cardinality=99
 |  |
 |  01:SCAN HDFS [functional.alltypessmall s]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     row-size=8B cardinality=100
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> t.id
    row-size=9B cardinality=7.30K
 ====
@@ -1693,7 +1693,7 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  03:SCAN HDFS [functional.alltypessmall]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: bool_col = TRUE
 |     row-size=5B cardinality=50
 |
@@ -1706,12 +1706,12 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypessmall]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: bool_col = FALSE
 |     row-size=5B cardinality=50
 |
 00:SCAN HDFS [functional.alltypestiny t]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # Aggregate subquery with count (subquery op slotRef)
@@ -1731,7 +1731,7 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t1]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=4B cardinality=8
 |
 02:AGGREGATE [FINALIZE]
@@ -1740,7 +1740,7 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=4
 |
 01:SCAN HDFS [functional.alltypestiny tt1]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    runtime filters: RF000 -> tt1.month
    row-size=6B cardinality=8
 ====
@@ -1767,7 +1767,7 @@ PLAN-ROOT SINK
 |  row-size=20B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=8B cardinality=8
 |
 02:AGGREGATE [FINALIZE]
@@ -1776,7 +1776,7 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=7.30K
 |
 01:SCAN HDFS [functional.alltypes s]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> s.id
    row-size=8B cardinality=7.30K
 ====
@@ -1803,7 +1803,7 @@ PLAN-ROOT SINK
 |  row-size=38B cardinality=4
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: bool_col = FALSE
 |     row-size=22B cardinality=4
 |
@@ -1813,7 +1813,7 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=7.30K
 |
 01:SCAN HDFS [functional.alltypes s]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> s.id
    row-size=8B cardinality=7.30K
 ====
@@ -1834,11 +1834,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypessmall]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     row-size=0B cardinality=100
 |
 00:SCAN HDFS [functional.alltypestiny t1]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=12B cardinality=8
 ====
 # Uncorrelated scalar subquery in complex binary predicate that contains columns
@@ -1858,7 +1858,7 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=1
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=0B cardinality=7.30K
 |
 04:HASH JOIN [INNER JOIN]
@@ -1867,11 +1867,11 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=9
 |
 |--00:SCAN HDFS [functional.alltypestiny t1]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=8B cardinality=8
 |
 01:SCAN HDFS [functional.alltypessmall t2]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    runtime filters: RF000 -> t2.id
    row-size=8B cardinality=100
 ====
@@ -1893,7 +1893,7 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=1
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=0B cardinality=7.30K
 |
 04:HASH JOIN [INNER JOIN]
@@ -1902,11 +1902,11 @@ PLAN-ROOT SINK
 |  row-size=24B cardinality=9
 |
 |--00:SCAN HDFS [functional.alltypestiny t1]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=8B cardinality=8
 |
 01:SCAN HDFS [functional.alltypessmall t2]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    runtime filters: RF000 -> t2.id
    row-size=16B cardinality=100
 ====
@@ -1925,14 +1925,14 @@ PLAN-ROOT SINK
 |  row-size=4B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=4B cardinality=8
 |
 04:AGGREGATE [FINALIZE]
 |  output: sum(t1.id)
 |  group by: t1.id + t2.id
 |  having: sum(t1.id) = t1.id + t2.id
-|  row-size=16B cardinality=1.03K
+|  row-size=16B cardinality=781
 |
 03:HASH JOIN [INNER JOIN]
 |  hash predicates: t1.id = t2.id
@@ -1940,11 +1940,11 @@ PLAN-ROOT SINK
 |  row-size=8B cardinality=7.81K
 |
 |--02:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 01:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF002 -> t1.id
    row-size=4B cardinality=11.00K
 ====
@@ -1963,7 +1963,7 @@ PLAN-ROOT SINK
 |  row-size=12B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=12B cardinality=8
 |
 04:AGGREGATE [FINALIZE]
@@ -1977,11 +1977,11 @@ PLAN-ROOT SINK
 |  row-size=8B cardinality=7.81K
 |
 |--02:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 01:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF004 -> t1.id
    row-size=4B cardinality=11.00K
 ====
@@ -2008,11 +2008,11 @@ PLAN-ROOT SINK
 |  |  row-size=24B cardinality=9
 |  |
 |  |--00:SCAN HDFS [functional.alltypestiny t1]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=16B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypessmall t2]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     runtime filters: RF004 -> t2.id
 |     row-size=8B cardinality=100
 |
@@ -2027,11 +2027,11 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=83.91K
 |
 |--03:SCAN HDFS [functional.alltypes tt2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 02:SCAN HDFS [functional.alltypesagg tt1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF002 -> tt1.int_col
    row-size=8B cardinality=11.00K
 ====
@@ -2080,7 +2080,7 @@ and not exists
 PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypestiny t1]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=0B cardinality=8
 ====
 # Correlated EXISTS and NOT EXISTS subqueries with limit 0 and
@@ -2104,39 +2104,39 @@ and not exists
 ---- PLAN
 PLAN-ROOT SINK
 |
-06:HASH JOIN [LEFT ANTI JOIN]
-|  hash predicates: t1.tinyint_col = t4.int_col
+06:HASH JOIN [RIGHT ANTI JOIN]
+|  hash predicates: t4.int_col = t1.tinyint_col
 |  row-size=5B cardinality=1
 |
-|--04:AGGREGATE [FINALIZE]
-|  |  output: count(id)
-|  |  group by: t4.int_col
-|  |  having: count(id) > 200
-|  |  row-size=12B cardinality=0
+|--05:HASH JOIN [RIGHT SEMI JOIN]
+|  |  hash predicates: t3.id = t1.id
+|  |  runtime filters: RF000 <- t1.id
+|  |  row-size=5B cardinality=1
 |  |
-|  03:SCAN HDFS [functional.alltypestiny t4]
-|     partitions=4/4 files=4 size=460B
-|     row-size=8B cardinality=8
-|
-05:HASH JOIN [RIGHT SEMI JOIN]
-|  hash predicates: t3.id = t1.id
-|  runtime filters: RF000 <- t1.id
-|  row-size=5B cardinality=1
-|
-|--00:SCAN HDFS [functional.alltypestiny t1]
-|     partitions=4/4 files=4 size=460B
-|     predicates: t1.id > 100
-|     row-size=5B cardinality=1
+|  |--00:SCAN HDFS [functional.alltypestiny t1]
+|  |     HDFS partitions=4/4 files=4 size=460B
+|  |     predicates: t1.id > 100
+|  |     row-size=5B cardinality=1
+|  |
+|  02:AGGREGATE [FINALIZE]
+|  |  group by: int_col, t3.id
+|  |  row-size=8B cardinality=1.10K
+|  |
+|  01:SCAN HDFS [functional.alltypesagg t3]
+|     HDFS partitions=11/11 files=11 size=814.73KB
+|     predicates: t3.id > 100
+|     runtime filters: RF000 -> t3.id
+|     row-size=8B cardinality=1.10K
 |
-02:AGGREGATE [FINALIZE]
-|  group by: int_col, t3.id
-|  row-size=8B cardinality=1.10K
+04:AGGREGATE [FINALIZE]
+|  output: count(id)
+|  group by: t4.int_col
+|  having: count(id) > 200
+|  row-size=12B cardinality=1
 |
-01:SCAN HDFS [functional.alltypesagg t3]
-   partitions=11/11 files=11 size=814.73KB
-   predicates: t3.id > 100
-   runtime filters: RF000 -> t3.id
-   row-size=8B cardinality=1.10K
+03:SCAN HDFS [functional.alltypestiny t4]
+   HDFS partitions=4/4 files=4 size=460B
+   row-size=8B cardinality=8
 ====
 # Tests for <=> (aka IS NOT DISTINCT FROM) and IS DISTINCT FROM
 select * from functional.alltypesagg t1
@@ -2157,11 +2157,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.id, RF001 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2184,11 +2184,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2210,11 +2210,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.id, RF001 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2237,11 +2237,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2263,11 +2263,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.id, RF001 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2290,11 +2290,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2316,11 +2316,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.id, RF001 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2343,11 +2343,11 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=10
 |  |
 |  01:SCAN HDFS [functional.alltypes t2]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypesagg t1]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    runtime filters: RF000 -> t1.int_col
    row-size=95B cardinality=11.00K
 ====
@@ -2371,12 +2371,12 @@ PLAN-ROOT SINK
 |  row-size=56B cardinality=730
 |
 |--00:SCAN HDFS [functional.alltypes t]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: t.bigint_col <= 20, t.string_col <= t.date_string_col
 |     row-size=56B cardinality=730
 |
 01:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: a.int_col >= 20, a.smallint_col >= 10
    runtime filters: RF000 -> id
    row-size=38B cardinality=1.10K
@@ -2415,25 +2415,25 @@ PLAN-ROOT SINK
 |
 |--05:SCAN HDFS [functional.alltypestiny]
 |     partition predicates: `year` = 2009, `month` = 2
-|     partitions=1/4 files=1 size=115B
+|     HDFS partitions=1/4 files=1 size=115B
 |     row-size=89B cardinality=2
 |
 |--04:SCAN HDFS [functional.alltypestiny]
 |     partition predicates: `year` = 2009, `month` = 1
-|     partitions=1/4 files=1 size=115B
+|     HDFS partitions=1/4 files=1 size=115B
 |     row-size=89B cardinality=2
 |
 03:NESTED LOOP JOIN [LEFT SEMI JOIN]
 |  row-size=89B cardinality=8
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: int_col < 10
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 01:SCAN HDFS [functional.alltypestiny]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # IMPALA-4303: Test subquery rewriting with nested unions.
@@ -2456,25 +2456,25 @@ PLAN-ROOT SINK
 |
 |--05:SCAN HDFS [functional.alltypestiny]
 |     partition predicates: `year` = 2009, `month` = 2
-|     partitions=1/4 files=1 size=115B
+|     HDFS partitions=1/4 files=1 size=115B
 |     row-size=89B cardinality=2
 |
 |--04:SCAN HDFS [functional.alltypestiny]
 |     partition predicates: `year` = 2009, `month` = 1
-|     partitions=1/4 files=1 size=115B
+|     HDFS partitions=1/4 files=1 size=115B
 |     row-size=89B cardinality=2
 |
 03:NESTED LOOP JOIN [LEFT SEMI JOIN]
 |  row-size=89B cardinality=8
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: int_col < 10
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 01:SCAN HDFS [functional.alltypestiny]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    row-size=89B cardinality=8
 ====
 # Constant on LHS of IN, uncorrelated subquery
@@ -2487,12 +2487,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=100
 |
 |--01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: 1 = functional.alltypestiny.int_col
 |     row-size=4B cardinality=4
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of NOT IN, uncorrelated subquery
@@ -2505,13 +2505,13 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=100
 |
 |--01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: 1 IS NULL OR functional.alltypestiny.int_col IS NULL OR functional.alltypestiny.int_col = 1
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of IN, correlated subquery
@@ -2526,12 +2526,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=4
 |
 |--01:SCAN HDFS [functional.alltypestiny b]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: 1 = b.int_col
 |     row-size=8B cardinality=4
 |
 00:SCAN HDFS [functional.alltypessmall a]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    runtime filters: RF000 -> a.id
    row-size=89B cardinality=100
 ====
@@ -2549,12 +2549,12 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=2
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: 1 = functional.alltypestiny.int_col
 |     row-size=4B cardinality=4
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of NOT IN, subquery with group by
@@ -2572,12 +2572,12 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     predicates: 1 IS NULL OR functional.alltypestiny.int_col IS NULL OR functional.alltypestiny.int_col = 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of IN, subquery with aggregate
@@ -2595,11 +2595,11 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=4B cardinality=8
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of NOT IN, subquery with aggregate
@@ -2609,19 +2609,19 @@ select * from functional.alltypessmall where
 PLAN-ROOT SINK
 |
 03:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=93B cardinality=0
+|  row-size=93B cardinality=100
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: max(int_col)
 |  |  having: 1 != max(int_col)
-|  |  row-size=4B cardinality=0
+|  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=4B cardinality=8
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of IN, subquery with limit
@@ -2638,12 +2638,12 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of NOT IN, subquery with limit
@@ -2653,19 +2653,19 @@ select * from functional.alltypessmall where
 PLAN-ROOT SINK
 |
 03:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=93B cardinality=0
+|  row-size=93B cardinality=100
 |
 |--02:SELECT
 |  |  predicates: 1 != int_col
-|  |  row-size=4B cardinality=0
+|  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     limit: 1
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypessmall]
-   partitions=4/4 files=4 size=6.32KB
+   HDFS partitions=4/4 files=4 size=6.32KB
    row-size=89B cardinality=100
 ====
 # Constant on LHS of IN for nested subqueries (no correlation)
@@ -2682,17 +2682,17 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=unavailable
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     predicates: 1 = functional.alltypestiny.int_col
 |  |     row-size=4B cardinality=4
 |  |
 |  01:SCAN HDFS [functional.tinyinttable]
-|     partitions=1/1 files=1 size=20B
+|     HDFS partitions=1/1 files=1 size=20B
 |     predicates: 1 = functional.tinyinttable.int_col
 |     row-size=4B cardinality=unavailable
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ====
 # Constant on LHS of IN for nested subqueries (correlation)
@@ -2711,17 +2711,17 @@ PLAN-ROOT SINK
 |  |  row-size=16B cardinality=2
 |  |
 |  |--02:SCAN HDFS [functional.alltypestiny]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=12B cardinality=8
 |  |
 |  01:SCAN HDFS [functional.alltypessmall t]
-|     partitions=4/4 files=4 size=6.32KB
+|     HDFS partitions=4/4 files=4 size=6.32KB
 |     predicates: 1 = t.int_col
 |     runtime filters: RF000 -> bigint_col, RF001 -> t.id
 |     row-size=16B cardinality=10
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ====
 # EXISTS subquery containing ORDER BY, LIMIT, and OFFSET (IMPALA-6934)
@@ -2738,7 +2738,7 @@ PLAN-ROOT SINK
 |  row-size=0B cardinality=8
 |
 |--00:SCAN HDFS [functional.alltypestiny t]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=0B cardinality=8
 |
 02:TOP-N [LIMIT=1 OFFSET=6]
@@ -2746,7 +2746,7 @@ PLAN-ROOT SINK
 |  row-size=4B cardinality=1
 |
 01:SCAN HDFS [functional.alltypestiny]
-   partitions=4/4 files=4 size=460B
+   HDFS partitions=4/4 files=4 size=460B
    predicates: id < 5
    row-size=4B cardinality=1
 ====
@@ -2768,13 +2768,13 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: id = 1
 |     limit: 2
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id = 1
    runtime filters: RF000 -> id
    row-size=12B cardinality=1
@@ -2798,7 +2798,7 @@ PLAN-ROOT SINK
 |  |  limit: 2
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: id = 1
 |     limit: 2
 |     row-size=4B cardinality=1
@@ -2806,7 +2806,7 @@ PLAN-ROOT SINK
 05:EXCHANGE [HASH(id)]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id = 1
    runtime filters: RF000 -> id
    row-size=12B cardinality=1
@@ -2829,13 +2829,13 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: id = 1
 |     limit: 2
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=12B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -2858,13 +2858,13 @@ PLAN-ROOT SINK
 |  |  limit: 2
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: id = 1
 |     limit: 2
 |     row-size=4B cardinality=1
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=12B cardinality=7.30K
 ====
@@ -2895,15 +2895,15 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=14.60K
 |  |
 |  |--03:SCAN HDFS [functional.alltypes]
-|  |     partitions=24/24 files=24 size=478.45KB
+|  |     HDFS partitions=24/24 files=24 size=478.45KB
 |  |     row-size=2B cardinality=7.30K
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -2941,15 +2941,15 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=14.60K
 |  |
 |  |--03:SCAN HDFS [functional.alltypes]
-|  |     partitions=24/24 files=24 size=478.45KB
+|  |     HDFS partitions=24/24 files=24 size=478.45KB
 |  |     row-size=2B cardinality=7.30K
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=8B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=89B cardinality=7.30K
 ====
@@ -2981,17 +2981,17 @@ PLAN-ROOT SINK
 |  |  row-size=14B cardinality=7.81K
 |  |
 |  |--01:SCAN HDFS [functional.alltypes allt]
-|  |     partitions=24/24 files=24 size=478.45KB
+|  |     HDFS partitions=24/24 files=24 size=478.45KB
 |  |     row-size=6B cardinality=7.30K
 |  |
 |  02:SCAN HDFS [functional.alltypesagg ata]
 |     partition predicates: ata.`month` = 1
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     runtime filters: RF002 -> ata.id
 |     row-size=8B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -3034,19 +3034,19 @@ PLAN-ROOT SINK
 |  |--08:EXCHANGE [HASH(allt.id)]
 |  |  |
 |  |  01:SCAN HDFS [functional.alltypes allt]
-|  |     partitions=24/24 files=24 size=478.45KB
+|  |     HDFS partitions=24/24 files=24 size=478.45KB
 |  |     row-size=6B cardinality=7.30K
 |  |
 |  07:EXCHANGE [HASH(ata.id)]
 |  |
 |  02:SCAN HDFS [functional.alltypesagg ata]
 |     partition predicates: ata.`month` = 1
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     runtime filters: RF002 -> ata.id
 |     row-size=8B cardinality=11.00K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> id
    row-size=89B cardinality=7.30K
 ====
@@ -3058,64 +3058,58 @@ PLAN-ROOT SINK
 |
 05:AGGREGATE [FINALIZE]
 |  output: count(*)
-|  row-size=8B cardinality=0
+|  row-size=8B cardinality=1
 |
 04:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=4B cardinality=0
+|  row-size=4B cardinality=7.30K
 |
-|--03:SELECT
-|  |  predicates: int_col IS NULL
-|  |  row-size=4B cardinality=0
-|  |
-|  02:CARDINALITY CHECK
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
-|     limit: 2
-|     row-size=4B cardinality=2
+|--00:SCAN HDFS [functional.alltypes]
+|     HDFS partitions=24/24 files=24 size=478.45KB
+|     row-size=0B cardinality=7.30K
 |
-00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
-   row-size=0B cardinality=7.30K
----- DISTRIBUTEDPLAN
-PLAN-ROOT SINK
+03:SELECT
+|  predicates: int_col IS NULL
+|  row-size=4B cardinality=1
 |
-09:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=0
+02:CARDINALITY CHECK
+|  limit: 1
+|  row-size=4B cardinality=1
 |
-08:EXCHANGE [UNPARTITIONED]
+01:SCAN HDFS [functional.alltypes]
+   HDFS partitions=24/24 files=24 size=478.45KB
+   limit: 2
+   row-size=4B cardinality=2
+---- DISTRIBUTEDPLAN
+PLAN-ROOT SINK
 |
-05:AGGREGATE
+05:AGGREGATE [FINALIZE]
 |  output: count(*)
-|  row-size=8B cardinality=0
+|  row-size=8B cardinality=1
 |
 04:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=4B cardinality=0
+|  row-size=4B cardinality=7.30K
 |
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  03:SELECT
-|  |  predicates: int_col IS NULL
-|  |  row-size=4B cardinality=0
-|  |
-|  02:CARDINALITY CHECK
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
+|--07:EXCHANGE [UNPARTITIONED]
 |  |
-|  06:EXCHANGE [UNPARTITIONED]
-|  |  limit: 2
-|  |
-|  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
-|     limit: 2
-|     row-size=4B cardinality=2
+|  00:SCAN HDFS [functional.alltypes]
+|     HDFS partitions=24/24 files=24 size=478.45KB
+|     row-size=0B cardinality=7.30K
 |
-00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
-   row-size=0B cardinality=7.30K
+03:SELECT
+|  predicates: int_col IS NULL
+|  row-size=4B cardinality=1
+|
+02:CARDINALITY CHECK
+|  limit: 1
+|  row-size=4B cardinality=1
+|
+06:EXCHANGE [UNPARTITIONED]
+|  limit: 2
+|
+01:SCAN HDFS [functional.alltypes]
+   HDFS partitions=24/24 files=24 size=478.45KB
+   limit: 2
+   row-size=4B cardinality=2
 ====
 # Binary predicate with constant must not be pushed down
 # to the scan node of the inline view.
@@ -3126,64 +3120,58 @@ PLAN-ROOT SINK
 |
 05:AGGREGATE [FINALIZE]
 |  output: count(*)
-|  row-size=8B cardinality=0
+|  row-size=8B cardinality=1
 |
 04:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=4B cardinality=0
+|  row-size=4B cardinality=7.30K
 |
-|--03:SELECT
-|  |  predicates: int_col > 10
-|  |  row-size=4B cardinality=0
-|  |
-|  02:CARDINALITY CHECK
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
-|     limit: 2
-|     row-size=4B cardinality=2
+|--00:SCAN HDFS [functional.alltypes]
+|     HDFS partitions=24/24 files=24 size=478.45KB
+|     row-size=0B cardinality=7.30K
 |
-00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
-   row-size=0B cardinality=7.30K
----- DISTRIBUTEDPLAN
-PLAN-ROOT SINK
+03:SELECT
+|  predicates: int_col > 10
+|  row-size=4B cardinality=1
 |
-09:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=0
+02:CARDINALITY CHECK
+|  limit: 1
+|  row-size=4B cardinality=1
 |
-08:EXCHANGE [UNPARTITIONED]
+01:SCAN HDFS [functional.alltypes]
+   HDFS partitions=24/24 files=24 size=478.45KB
+   limit: 2
+   row-size=4B cardinality=2
+---- DISTRIBUTEDPLAN
+PLAN-ROOT SINK
 |
-05:AGGREGATE
+05:AGGREGATE [FINALIZE]
 |  output: count(*)
-|  row-size=8B cardinality=0
+|  row-size=8B cardinality=1
 |
 04:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=4B cardinality=0
+|  row-size=4B cardinality=7.30K
 |
-|--07:EXCHANGE [BROADCAST]
-|  |
-|  03:SELECT
-|  |  predicates: int_col > 10
-|  |  row-size=4B cardinality=0
-|  |
-|  02:CARDINALITY CHECK
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  06:EXCHANGE [UNPARTITIONED]
-|  |  limit: 2
+|--07:EXCHANGE [UNPARTITIONED]
 |  |
-|  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
-|     limit: 2
-|     row-size=4B cardinality=2
+|  00:SCAN HDFS [functional.alltypes]
+|     HDFS partitions=24/24 files=24 size=478.45KB
+|     row-size=0B cardinality=7.30K
 |
-00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
-   row-size=0B cardinality=7.30K
+03:SELECT
+|  predicates: int_col > 10
+|  row-size=4B cardinality=1
+|
+02:CARDINALITY CHECK
+|  limit: 1
+|  row-size=4B cardinality=1
+|
+06:EXCHANGE [UNPARTITIONED]
+|  limit: 2
+|
+01:SCAN HDFS [functional.alltypes]
+   HDFS partitions=24/24 files=24 size=478.45KB
+   limit: 2
+   row-size=4B cardinality=2
 ====
 # Runtime scalar subquery with offset.
 select count(*) from functional.alltypes
@@ -3194,72 +3182,66 @@ PLAN-ROOT SINK
 |
 06:AGGREGATE [FINALIZE]
 |  output: count(*)
-|  row-size=8B cardinality=0
+|  row-size=8B cardinality=1
 |
 05:NESTED LOOP JOIN [CROSS JOIN]
-|  row-size=4B cardinality=0
+|  row-size=4B cardinality=7.30K
 |
-|--04:SELECT
-|  |  predicates: id = 7
-|  |  row-size=4B cardinality=0
-|  |
-|  03:CARDINALITY CHECK
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
-|  |
-|  02:TOP-N [LIMIT=2 OFFSET=7]
-|  |  order by: id ASC
-|  |  row-size=4B cardinality=2
-|  |
-|  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
-|     row-size=4B cardinality=8
+|--00:SCAN HDFS [functional.alltypes]
+|     HDFS partitions=24/24 files=24 size=478.45KB
+|     row-size=0B cardinality=7.30K
 |
-00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
-   row-size=0B cardinality=7.30K
----- DISTRIBUTEDPLAN
-PLAN-ROOT SINK
+04:SELECT
+|  predicates: id = 7
+|  row-size=4B cardinality=1
 |
-10:AGGREGATE [FINALIZE]
-|  output: count:merge(*)
-|  row-size=8B cardinality=0
+03:CARDINALITY CHECK
+|  limit: 1
+|  row-size=4B cardinality=1
+|
+02:TOP-N [LIMIT=2 OFFSET=7]
+|  order by: id ASC
+|  row-size=4B cardinality=2
 |
-09:EXCHANGE [UNPARTITIONED]
+01:SCAN HDFS [functional.alltypestiny]
+   HDFS partitions=4/4 files=4 size=460B
+   row-size=4B cardinality=8
+---- DISTRIBUTEDPLAN
+PLAN-ROOT SINK
 |
-06:AGGREGATE
+06:AGGREGATE [FINALIZE]
 |  output: count(*)
-|  row-size=8B cardinality=0
+|  row-size=8B cardinality=1
 |
 05:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
-|  row-size=4B cardinality=0
+|  row-size=4B cardinality=7.30K
 |
-|--08:EXCHANGE [BROADCAST]
-|  |
-|  04:SELECT
-|  |  predicates: id = 7
-|  |  row-size=4B cardinality=0
-|  |
-|  03:CARDINALITY CHECK
-|  |  limit: 1
-|  |  row-size=4B cardinality=1
+|--08:EXCHANGE [UNPARTITIONED]
 |  |
-|  07:MERGING-EXCHANGE [UNPARTITIONED]
-|  |  offset: 7
-|  |  order by: id ASC
-|  |  limit: 2
-|  |
-|  02:TOP-N [LIMIT=9]
-|  |  order by: id ASC
-|  |  row-size=4B cardinality=8
-|  |
-|  01:SCAN HDFS [functional.alltypestiny]
-|     partitions=4/4 files=4 size=460B
-|     row-size=4B cardinality=8
+|  00:SCAN HDFS [functional.alltypes]
+|     HDFS partitions=24/24 files=24 size=478.45KB
+|     row-size=0B cardinality=7.30K
 |
-00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
-   row-size=0B cardinality=7.30K
+04:SELECT
+|  predicates: id = 7
+|  row-size=4B cardinality=1
+|
+03:CARDINALITY CHECK
+|  limit: 1
+|  row-size=4B cardinality=1
+|
+07:MERGING-EXCHANGE [UNPARTITIONED]
+|  offset: 7
+|  order by: id ASC
+|  limit: 2
+|
+02:TOP-N [LIMIT=9]
+|  order by: id ASC
+|  row-size=4B cardinality=8
+|
+01:SCAN HDFS [functional.alltypestiny]
+   HDFS partitions=4/4 files=4 size=460B
+   row-size=4B cardinality=8
 ====
 # IMPALA-7108: Select from an inline view that returns a single row.
 select * from functional.alltypes
@@ -3278,11 +3260,11 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> int_col
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -3306,11 +3288,11 @@ PLAN-ROOT SINK
 |  |  row-size=4B cardinality=1
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=4B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> int_col
    row-size=89B cardinality=7.30K
 ====
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpch-nested.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpch-nested.test
index fd6363a..d62f50d 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpch-nested.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/tpch-nested.test
@@ -36,7 +36,7 @@ PLAN-ROOT SINK
 |  row-size=120B cardinality=1.50M
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate <= '1998-09-02'
    row-size=68B cardinality=1.50M
 ---- DISTRIBUTEDPLAN
@@ -64,7 +64,7 @@ PLAN-ROOT SINK
 |  row-size=120B cardinality=1.50M
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate <= '1998-09-02'
    row-size=68B cardinality=1.50M
 ====
@@ -147,7 +147,7 @@ PLAN-ROOT SINK
 |  |  |     row-size=0B cardinality=10
 |  |  |
 |  |  16:SCAN HDFS [tpch_nested_parquet.region r]
-|  |     partitions=1/1 files=1 size=3.44KB
+|  |     HDFS partitions=1/1 files=1 size=3.45KB
 |  |     predicates: r_name = 'EUROPE', !empty(r.r_nations)
 |  |     row-size=31B cardinality=1
 |  |
@@ -164,7 +164,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  11:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF008 -> s_nationkey
 |     row-size=14B cardinality=10.00K
@@ -187,7 +187,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  06:SCAN HDFS [tpch_nested_parquet.region r]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: r_name = 'EUROPE', !empty(r.r_nations)
 |     row-size=31B cardinality=1
 |
@@ -196,7 +196,7 @@ PLAN-ROOT SINK
 |  row-size=277B cardinality=100.00K
 |
 |--05:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_size = 15, p_type LIKE '%BRASS'
 |     runtime filters: RF000 -> p_partkey
 |     row-size=71B cardinality=1.26K
@@ -214,7 +214,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.supplier s]
-   partitions=1/1 files=1 size=41.79MB
+   HDFS partitions=1/1 files=1 size=41.79MB
    predicates: !empty(s.s_partsupps)
    runtime filters: RF004 -> s_nationkey
    row-size=191B cardinality=10.00K
@@ -270,7 +270,7 @@ PLAN-ROOT SINK
 |  |  |     row-size=0B cardinality=10
 |  |  |
 |  |  16:SCAN HDFS [tpch_nested_parquet.region r]
-|  |     partitions=1/1 files=1 size=3.44KB
+|  |     HDFS partitions=1/1 files=1 size=3.45KB
 |  |     predicates: r_name = 'EUROPE', !empty(r.r_nations)
 |  |     row-size=31B cardinality=1
 |  |
@@ -287,7 +287,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  11:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF008 -> s_nationkey
 |     row-size=14B cardinality=10.00K
@@ -312,7 +312,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  06:SCAN HDFS [tpch_nested_parquet.region r]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: r_name = 'EUROPE', !empty(r.r_nations)
 |     row-size=31B cardinality=1
 |
@@ -323,7 +323,7 @@ PLAN-ROOT SINK
 |--27:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_size = 15, p_type LIKE '%BRASS'
 |     runtime filters: RF000 -> p_partkey
 |     row-size=71B cardinality=1.26K
@@ -341,7 +341,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.supplier s]
-   partitions=1/1 files=1 size=41.79MB
+   HDFS partitions=1/1 files=1 size=41.79MB
    predicates: !empty(s.s_partsupps)
    runtime filters: RF004 -> s_nationkey
    row-size=191B cardinality=10.00K
@@ -408,7 +408,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: c_mktsegment = 'BUILDING', !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate < '1995-03-15'
    predicates on l: l_shipdate > '1995-03-15'
@@ -463,7 +463,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: c_mktsegment = 'BUILDING', !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate < '1995-03-15'
    predicates on l: l_shipdate > '1995-03-15'
@@ -531,7 +531,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: o_orderdate >= '1993-07-01', o_orderdate < '1993-10-01'
    predicates on o_lineitems: l_commitdate < l_receiptdate
@@ -585,7 +585,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: o_orderdate >= '1993-07-01', o_orderdate < '1993-10-01'
    predicates on o_lineitems: l_commitdate < l_receiptdate
@@ -634,7 +634,7 @@ PLAN-ROOT SINK
 |  row-size=117B cardinality=6.00G
 |
 |--09:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     row-size=10B cardinality=10.00K
 |
 15:HASH JOIN [INNER JOIN]
@@ -655,7 +655,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  10:SCAN HDFS [tpch_nested_parquet.region r]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: r_name = 'ASIA', !empty(r.r_nations)
 |     row-size=31B cardinality=1
 |
@@ -684,7 +684,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate >= '1994-01-01', o_orderdate < '1995-01-01'
    runtime filters: RF000 -> c_nationkey, RF004 -> c.c_nationkey
@@ -721,7 +721,7 @@ PLAN-ROOT SINK
 |--20:EXCHANGE [BROADCAST]
 |  |
 |  09:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     row-size=10B cardinality=10.00K
 |
 15:HASH JOIN [INNER JOIN, BROADCAST]
@@ -744,7 +744,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  10:SCAN HDFS [tpch_nested_parquet.region r]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: r_name = 'ASIA', !empty(r.r_nations)
 |     row-size=31B cardinality=1
 |
@@ -773,7 +773,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate >= '1994-01-01', o_orderdate < '1995-01-01'
    runtime filters: RF000 -> c_nationkey, RF004 -> c.c_nationkey
@@ -800,7 +800,7 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=1
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_discount <= 0.07, l_discount >= 0.05, l_quantity < 24, l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
    row-size=36B cardinality=1.50M
 ---- DISTRIBUTEDPLAN
@@ -819,7 +819,7 @@ PLAN-ROOT SINK
 |  row-size=16B cardinality=1
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_discount <= 0.07, l_discount >= 0.05, l_quantity < 24, l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
    row-size=36B cardinality=1.50M
 ====
@@ -882,7 +882,7 @@ PLAN-ROOT SINK
 |  row-size=100B cardinality=15.00M
 |
 |--11:SCAN HDFS [tpch_nested_parquet.region.r_nations n2]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 13:HASH JOIN [INNER JOIN]
@@ -891,7 +891,7 @@ PLAN-ROOT SINK
 |  row-size=86B cardinality=15.00M
 |
 |--10:SCAN HDFS [tpch_nested_parquet.region.r_nations n1]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 12:HASH JOIN [INNER JOIN]
@@ -899,7 +899,7 @@ PLAN-ROOT SINK
 |  row-size=72B cardinality=15.00M
 |
 |--09:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     runtime filters: RF002 -> s_nationkey
 |     row-size=10B cardinality=10.00K
 |
@@ -928,7 +928,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems)
    predicates on l: l_shipdate >= '1995-01-01', l_shipdate <= '1996-12-31'
@@ -967,7 +967,7 @@ PLAN-ROOT SINK
 |--19:EXCHANGE [BROADCAST]
 |  |
 |  11:SCAN HDFS [tpch_nested_parquet.region.r_nations n2]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 13:HASH JOIN [INNER JOIN, BROADCAST]
@@ -978,7 +978,7 @@ PLAN-ROOT SINK
 |--18:EXCHANGE [BROADCAST]
 |  |
 |  10:SCAN HDFS [tpch_nested_parquet.region.r_nations n1]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 12:HASH JOIN [INNER JOIN, BROADCAST]
@@ -988,7 +988,7 @@ PLAN-ROOT SINK
 |--17:EXCHANGE [BROADCAST]
 |  |
 |  09:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     runtime filters: RF002 -> s_nationkey
 |     row-size=10B cardinality=10.00K
 |
@@ -1017,7 +1017,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems)
    predicates on l: l_shipdate >= '1995-01-01', l_shipdate <= '1996-12-31'
@@ -1080,7 +1080,7 @@ PLAN-ROOT SINK
 |  row-size=167B cardinality=15.00M
 |
 |--16:SCAN HDFS [tpch_nested_parquet.region.r_nations n2]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 19:HASH JOIN [INNER JOIN]
@@ -1101,7 +1101,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  11:SCAN HDFS [tpch_nested_parquet.region r]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: r_name = 'AMERICA', !empty(r.r_nations)
 |     row-size=31B cardinality=1
 |
@@ -1110,7 +1110,7 @@ PLAN-ROOT SINK
 |  row-size=121B cardinality=15.00M
 |
 |--10:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_type = 'ECONOMY ANODIZED STEEL'
 |     row-size=41B cardinality=1.32K
 |
@@ -1119,7 +1119,7 @@ PLAN-ROOT SINK
 |  row-size=80B cardinality=15.00M
 |
 |--09:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     runtime filters: RF000 -> s_nationkey
 |     row-size=10B cardinality=10.00K
 |
@@ -1148,7 +1148,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate >= '1995-01-01', o_orderdate <= '1996-12-31'
    runtime filters: RF002 -> c_nationkey
@@ -1185,7 +1185,7 @@ PLAN-ROOT SINK
 |--26:EXCHANGE [BROADCAST]
 |  |
 |  16:SCAN HDFS [tpch_nested_parquet.region.r_nations n2]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 19:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1208,7 +1208,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  11:SCAN HDFS [tpch_nested_parquet.region r]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: r_name = 'AMERICA', !empty(r.r_nations)
 |     row-size=31B cardinality=1
 |
@@ -1219,7 +1219,7 @@ PLAN-ROOT SINK
 |--24:EXCHANGE [BROADCAST]
 |  |
 |  10:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_type = 'ECONOMY ANODIZED STEEL'
 |     row-size=41B cardinality=1.32K
 |
@@ -1230,7 +1230,7 @@ PLAN-ROOT SINK
 |--23:EXCHANGE [BROADCAST]
 |  |
 |  09:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     runtime filters: RF000 -> s_nationkey
 |     row-size=10B cardinality=10.00K
 |
@@ -1259,7 +1259,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate >= '1995-01-01', o_orderdate <= '1996-12-31'
    runtime filters: RF002 -> c_nationkey
@@ -1316,7 +1316,7 @@ PLAN-ROOT SINK
 |  row-size=169B cardinality=15.00M
 |
 |--11:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 13:HASH JOIN [INNER JOIN]
@@ -1324,7 +1324,7 @@ PLAN-ROOT SINK
 |  row-size=155B cardinality=15.00M
 |
 |--10:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_name LIKE '%green%'
 |     row-size=53B cardinality=20.00K
 |
@@ -1345,7 +1345,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  05:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF000 -> s_nationkey
 |     row-size=22B cardinality=10.00K
@@ -1363,7 +1363,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders o]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(o.o_lineitems)
    row-size=24B cardinality=1.50M
 ---- DISTRIBUTEDPLAN
@@ -1398,7 +1398,7 @@ PLAN-ROOT SINK
 |--19:EXCHANGE [BROADCAST]
 |  |
 |  11:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 13:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1408,7 +1408,7 @@ PLAN-ROOT SINK
 |--18:EXCHANGE [BROADCAST]
 |  |
 |  10:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_name LIKE '%green%'
 |     row-size=53B cardinality=20.00K
 |
@@ -1431,7 +1431,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  05:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF000 -> s_nationkey
 |     row-size=22B cardinality=10.00K
@@ -1449,7 +1449,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders o]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(o.o_lineitems)
    row-size=24B cardinality=1.50M
 ====
@@ -1506,7 +1506,7 @@ PLAN-ROOT SINK
 |  row-size=275B cardinality=15.00M
 |
 |--09:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 01:SUBPLAN
@@ -1534,7 +1534,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate >= '1993-10-01', o_orderdate < '1994-01-01'
    predicates on l: l_returnflag = 'R'
@@ -1573,7 +1573,7 @@ PLAN-ROOT SINK
 |--13:EXCHANGE [BROADCAST]
 |  |
 |  09:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     row-size=14B cardinality=50
 |
 01:SUBPLAN
@@ -1601,7 +1601,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderdate >= '1993-10-01', o_orderdate < '1994-01-01'
    predicates on l: l_returnflag = 'R'
@@ -1664,7 +1664,7 @@ PLAN-ROOT SINK
 |  |  row-size=40B cardinality=100.00K
 |  |
 |  |--13:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|  |     partitions=1/1 files=1 size=3.44KB
+|  |     HDFS partitions=1/1 files=1 size=3.45KB
 |  |     predicates: n_name = 'GERMANY'
 |  |     row-size=14B cardinality=5
 |  |
@@ -1681,7 +1681,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  08:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF002 -> s_nationkey
 |     row-size=14B cardinality=10.00K
@@ -1697,7 +1697,7 @@ PLAN-ROOT SINK
 |  row-size=48B cardinality=100.00K
 |
 |--05:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: n_name = 'GERMANY'
 |     row-size=14B cardinality=5
 |
@@ -1714,7 +1714,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.supplier s]
-   partitions=1/1 files=1 size=41.79MB
+   HDFS partitions=1/1 files=1 size=41.79MB
    predicates: !empty(s.s_partsupps)
    runtime filters: RF000 -> s_nationkey
    row-size=14B cardinality=10.00K
@@ -1754,7 +1754,7 @@ PLAN-ROOT SINK
 |  |--21:EXCHANGE [BROADCAST]
 |  |  |
 |  |  13:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|  |     partitions=1/1 files=1 size=3.44KB
+|  |     HDFS partitions=1/1 files=1 size=3.45KB
 |  |     predicates: n_name = 'GERMANY'
 |  |     row-size=14B cardinality=5
 |  |
@@ -1771,7 +1771,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  08:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF002 -> s_nationkey
 |     row-size=14B cardinality=10.00K
@@ -1796,7 +1796,7 @@ PLAN-ROOT SINK
 |--18:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: n_name = 'GERMANY'
 |     row-size=14B cardinality=5
 |
@@ -1813,7 +1813,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.supplier s]
-   partitions=1/1 files=1 size=41.79MB
+   HDFS partitions=1/1 files=1 size=41.79MB
    predicates: !empty(s.s_partsupps)
    runtime filters: RF000 -> s_nationkey
    row-size=14B cardinality=10.00K
@@ -1874,7 +1874,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders o]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(o.o_lineitems)
    predicates on l: l_shipmode IN ('MAIL', 'SHIP'), l_commitdate < l_receiptdate, l_shipdate < l_commitdate, l_receiptdate >= '1994-01-01', l_receiptdate < '1995-01-01'
    row-size=24B cardinality=1.50M
@@ -1915,7 +1915,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders o]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(o.o_lineitems)
    predicates on l: l_shipmode IN ('MAIL', 'SHIP'), l_commitdate < l_receiptdate, l_shipdate < l_commitdate, l_receiptdate >= '1994-01-01', l_receiptdate < '1995-01-01'
    row-size=24B cardinality=1.50M
@@ -1973,7 +1973,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates on c_orders: (NOT o_comment LIKE '%special%requests%')
    row-size=20B cardinality=150.00K
 ---- DISTRIBUTEDPLAN
@@ -2025,7 +2025,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates on c_orders: (NOT o_comment LIKE '%special%requests%')
    row-size=20B cardinality=150.00K
 ====
@@ -2059,11 +2059,11 @@ PLAN-ROOT SINK
 |  row-size=77B cardinality=1.50M
 |
 |--01:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     row-size=41B cardinality=200.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate < '1995-10-01', l_shipdate >= '1995-09-01'
    runtime filters: RF000 -> l_partkey
    row-size=36B cardinality=1.50M
@@ -2090,11 +2090,11 @@ PLAN-ROOT SINK
 |--04:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     row-size=41B cardinality=200.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate < '1995-10-01', l_shipdate >= '1995-09-01'
    runtime filters: RF000 -> l_partkey
    row-size=36B cardinality=1.50M
@@ -2154,7 +2154,7 @@ PLAN-ROOT SINK
 |  |  row-size=24B cardinality=1.50M
 |  |
 |  03:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-|     partitions=1/1 files=4 size=288.99MB
+|     HDFS partitions=1/1 files=4 size=288.99MB
 |     predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
 |     row-size=36B cardinality=1.50M
 |
@@ -2164,7 +2164,7 @@ PLAN-ROOT SINK
 |  row-size=126B cardinality=1.50M
 |
 |--00:SCAN HDFS [tpch_nested_parquet.supplier]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     row-size=102B cardinality=10.00K
 |
 02:AGGREGATE [FINALIZE]
@@ -2173,7 +2173,7 @@ PLAN-ROOT SINK
 |  row-size=24B cardinality=1.50M
 |
 01:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
    runtime filters: RF000 -> l.l_suppkey
    row-size=36B cardinality=1.50M
@@ -2218,7 +2218,7 @@ PLAN-ROOT SINK
 |  |  row-size=24B cardinality=1.50M
 |  |
 |  03:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-|     partitions=1/1 files=4 size=288.99MB
+|     HDFS partitions=1/1 files=4 size=288.99MB
 |     predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
 |     row-size=36B cardinality=1.50M
 |
@@ -2230,7 +2230,7 @@ PLAN-ROOT SINK
 |--11:EXCHANGE [HASH(s_suppkey)]
 |  |
 |  00:SCAN HDFS [tpch_nested_parquet.supplier]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     row-size=102B cardinality=10.00K
 |
 10:AGGREGATE [FINALIZE]
@@ -2246,7 +2246,7 @@ PLAN-ROOT SINK
 |  row-size=24B cardinality=1.50M
 |
 01:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
    runtime filters: RF000 -> l.l_suppkey
    row-size=36B cardinality=1.50M
@@ -2300,7 +2300,7 @@ PLAN-ROOT SINK
 |  row-size=167B cardinality=10.00K
 |
 |--05:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_size IN (49, 14, 23, 45, 19, 3, 36, 9), p_brand != 'Brand#45', NOT p_type LIKE 'MEDIUM POLISHED%'
 |     row-size=65B cardinality=8.00K
 |
@@ -2317,7 +2317,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.supplier s]
-   partitions=1/1 files=1 size=41.79MB
+   HDFS partitions=1/1 files=1 size=41.79MB
    predicates: NOT s_comment LIKE '%Customer%Complaints%', !empty(s.s_partsupps)
    row-size=95B cardinality=1.00K
 ---- DISTRIBUTEDPLAN
@@ -2361,7 +2361,7 @@ PLAN-ROOT SINK
 |--10:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_size IN (49, 14, 23, 45, 19, 3, 36, 9), p_brand != 'Brand#45', NOT p_type LIKE 'MEDIUM POLISHED%'
 |     row-size=65B cardinality=8.00K
 |
@@ -2378,7 +2378,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.supplier s]
-   partitions=1/1 files=1 size=41.79MB
+   HDFS partitions=1/1 files=1 size=41.79MB
    predicates: NOT s_comment LIKE '%Customer%Complaints%', !empty(s.s_partsupps)
    row-size=95B cardinality=1.00K
 ====
@@ -2422,7 +2422,7 @@ PLAN-ROOT SINK
 |  |  row-size=16B cardinality=15.00M
 |  |
 |  02:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-|     partitions=1/1 files=4 size=288.99MB
+|     HDFS partitions=1/1 files=4 size=288.99MB
 |     row-size=16B cardinality=15.00M
 |
 04:HASH JOIN [INNER JOIN]
@@ -2431,13 +2431,13 @@ PLAN-ROOT SINK
 |  row-size=72B cardinality=15.00M
 |
 |--01:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_container = 'MED BOX', p_brand = 'Brand#23'
 |     runtime filters: RF000 -> p_partkey
 |     row-size=48B cardinality=1.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    runtime filters: RF000 -> l.l_partkey, RF002 -> l_partkey
    row-size=24B cardinality=15.00M
 ---- DISTRIBUTEDPLAN
@@ -2474,7 +2474,7 @@ PLAN-ROOT SINK
 |  |  row-size=16B cardinality=15.00M
 |  |
 |  02:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-|     partitions=1/1 files=4 size=288.99MB
+|     HDFS partitions=1/1 files=4 size=288.99MB
 |     row-size=16B cardinality=15.00M
 |
 10:EXCHANGE [HASH(p_partkey)]
@@ -2487,13 +2487,13 @@ PLAN-ROOT SINK
 |--07:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_container = 'MED BOX', p_brand = 'Brand#23'
 |     runtime filters: RF000 -> p_partkey
 |     row-size=48B cardinality=1.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    runtime filters: RF000 -> l.l_partkey, RF002 -> l_partkey
    row-size=24B cardinality=15.00M
 ====
@@ -2523,22 +2523,22 @@ PLAN-ROOT SINK
 |
 10:TOP-N [LIMIT=100]
 |  order by: o_totalprice DESC, o_orderdate ASC
-|  row-size=82B cardinality=0
+|  row-size=82B cardinality=100
 |
 01:SUBPLAN
-|  row-size=106B cardinality=0
+|  row-size=106B cardinality=1.50M
 |
 |--09:NESTED LOOP JOIN [CROSS JOIN]
-|  |  row-size=106B cardinality=0
+|  |  row-size=106B cardinality=10
 |  |
 |  |--02:SINGULAR ROW SRC
 |  |     row-size=50B cardinality=1
 |  |
 |  04:SUBPLAN
-|  |  row-size=56B cardinality=0
+|  |  row-size=56B cardinality=10
 |  |
 |  |--08:NESTED LOOP JOIN [CROSS JOIN]
-|  |  |  row-size=56B cardinality=0
+|  |  |  row-size=56B cardinality=1
 |  |  |
 |  |  |--05:SINGULAR ROW SRC
 |  |  |     row-size=40B cardinality=1
@@ -2546,7 +2546,7 @@ PLAN-ROOT SINK
 |  |  07:AGGREGATE [FINALIZE]
 |  |  |  output: sum(l_quantity)
 |  |  |  having: sum(l_quantity) > 300
-|  |  |  row-size=16B cardinality=0
+|  |  |  row-size=16B cardinality=1
 |  |  |
 |  |  06:UNNEST [o.o_lineitems]
 |  |     row-size=0B cardinality=10
@@ -2555,7 +2555,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    row-size=50B cardinality=150.00K
 ---- DISTRIBUTEDPLAN
@@ -2569,22 +2569,22 @@ PLAN-ROOT SINK
 |
 10:TOP-N [LIMIT=100]
 |  order by: o_totalprice DESC, o_orderdate ASC
-|  row-size=82B cardinality=0
+|  row-size=82B cardinality=100
 |
 01:SUBPLAN
-|  row-size=106B cardinality=0
+|  row-size=106B cardinality=1.50M
 |
 |--09:NESTED LOOP JOIN [CROSS JOIN]
-|  |  row-size=106B cardinality=0
+|  |  row-size=106B cardinality=10
 |  |
 |  |--02:SINGULAR ROW SRC
 |  |     row-size=50B cardinality=1
 |  |
 |  04:SUBPLAN
-|  |  row-size=56B cardinality=0
+|  |  row-size=56B cardinality=10
 |  |
 |  |--08:NESTED LOOP JOIN [CROSS JOIN]
-|  |  |  row-size=56B cardinality=0
+|  |  |  row-size=56B cardinality=1
 |  |  |
 |  |  |--05:SINGULAR ROW SRC
 |  |  |     row-size=40B cardinality=1
@@ -2592,7 +2592,7 @@ PLAN-ROOT SINK
 |  |  07:AGGREGATE [FINALIZE]
 |  |  |  output: sum(l_quantity)
 |  |  |  having: sum(l_quantity) > 300
-|  |  |  row-size=16B cardinality=0
+|  |  |  row-size=16B cardinality=1
 |  |  |
 |  |  06:UNNEST [o.o_lineitems]
 |  |     row-size=0B cardinality=10
@@ -2601,7 +2601,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    row-size=50B cardinality=150.00K
 ====
@@ -2658,12 +2658,12 @@ PLAN-ROOT SINK
 |  row-size=108B cardinality=1.50M
 |
 |--01:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_size >= 1
 |     row-size=52B cardinality=20.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipmode IN ('AIR', 'AIR REG'), l_shipinstruct = 'DELIVER IN PERSON'
    runtime filters: RF000 -> l_partkey
    row-size=56B cardinality=1.50M
@@ -2691,12 +2691,12 @@ PLAN-ROOT SINK
 |--04:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [tpch_nested_parquet.part p]
-|     partitions=1/1 files=1 size=6.23MB
+|     HDFS partitions=1/1 files=1 size=6.24MB
 |     predicates: p_size >= 1
 |     row-size=52B cardinality=20.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipmode IN ('AIR', 'AIR REG'), l_shipinstruct = 'DELIVER IN PERSON'
    runtime filters: RF000 -> l_partkey
    row-size=56B cardinality=1.50M
@@ -2759,7 +2759,7 @@ PLAN-ROOT SINK
 |  |  row-size=115B cardinality=100.00K
 |  |
 |  |--06:SCAN HDFS [tpch_nested_parquet.part p]
-|  |     partitions=1/1 files=1 size=6.23MB
+|  |     HDFS partitions=1/1 files=1 size=6.24MB
 |  |     predicates: p_name LIKE 'forest%'
 |  |     row-size=53B cardinality=20.00K
 |  |
@@ -2769,7 +2769,7 @@ PLAN-ROOT SINK
 |  |  row-size=115B cardinality=100.00K
 |  |
 |  |--05:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|  |     partitions=1/1 files=1 size=3.44KB
+|  |     HDFS partitions=1/1 files=1 size=3.45KB
 |  |     predicates: n_name = 'CANADA'
 |  |     row-size=14B cardinality=5
 |  |
@@ -2786,7 +2786,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  00:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF006 -> s_nationkey
 |     row-size=89B cardinality=10.00K
@@ -2797,7 +2797,7 @@ PLAN-ROOT SINK
 |  row-size=32B cardinality=1.50M
 |
 07:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
    runtime filters: RF000 -> l.l_partkey, RF001 -> l.l_suppkey
    row-size=36B cardinality=1.50M
@@ -2838,7 +2838,7 @@ PLAN-ROOT SINK
 |  |--17:EXCHANGE [BROADCAST]
 |  |  |
 |  |  06:SCAN HDFS [tpch_nested_parquet.part p]
-|  |     partitions=1/1 files=1 size=6.23MB
+|  |     HDFS partitions=1/1 files=1 size=6.24MB
 |  |     predicates: p_name LIKE 'forest%'
 |  |     row-size=53B cardinality=20.00K
 |  |
@@ -2850,7 +2850,7 @@ PLAN-ROOT SINK
 |  |--16:EXCHANGE [BROADCAST]
 |  |  |
 |  |  05:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|  |     partitions=1/1 files=1 size=3.44KB
+|  |     HDFS partitions=1/1 files=1 size=3.45KB
 |  |     predicates: n_name = 'CANADA'
 |  |     row-size=14B cardinality=5
 |  |
@@ -2867,7 +2867,7 @@ PLAN-ROOT SINK
 |  |     row-size=0B cardinality=10
 |  |
 |  00:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     predicates: !empty(s.s_partsupps)
 |     runtime filters: RF006 -> s_nationkey
 |     row-size=89B cardinality=10.00K
@@ -2885,7 +2885,7 @@ PLAN-ROOT SINK
 |  row-size=32B cardinality=1.50M
 |
 07:SCAN HDFS [tpch_nested_parquet.customer.c_orders.o_lineitems l]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
    runtime filters: RF000 -> l.l_partkey, RF001 -> l.l_suppkey
    row-size=36B cardinality=1.50M
@@ -2970,7 +2970,7 @@ PLAN-ROOT SINK
 |  row-size=146B cardinality=15.00M
 |
 |--10:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: n_name = 'SAUDI ARABIA'
 |     row-size=14B cardinality=5
 |
@@ -2979,7 +2979,7 @@ PLAN-ROOT SINK
 |  row-size=132B cardinality=15.00M
 |
 |--00:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     runtime filters: RF000 -> s_nationkey
 |     row-size=40B cardinality=10.00K
 |
@@ -3008,7 +3008,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 01:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderstatus = 'F'
    predicates on l1: l1.l_receiptdate > l1.l_commitdate
@@ -3067,7 +3067,7 @@ PLAN-ROOT SINK
 |--22:EXCHANGE [BROADCAST]
 |  |
 |  10:SCAN HDFS [tpch_nested_parquet.region.r_nations n]
-|     partitions=1/1 files=1 size=3.44KB
+|     HDFS partitions=1/1 files=1 size=3.45KB
 |     predicates: n_name = 'SAUDI ARABIA'
 |     row-size=14B cardinality=5
 |
@@ -3078,7 +3078,7 @@ PLAN-ROOT SINK
 |--21:EXCHANGE [BROADCAST]
 |  |
 |  00:SCAN HDFS [tpch_nested_parquet.supplier s]
-|     partitions=1/1 files=1 size=41.79MB
+|     HDFS partitions=1/1 files=1 size=41.79MB
 |     runtime filters: RF000 -> s_nationkey
 |     row-size=40B cardinality=10.00K
 |
@@ -3107,7 +3107,7 @@ PLAN-ROOT SINK
 |     row-size=0B cardinality=10
 |
 01:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: !empty(c.c_orders)
    predicates on o: !empty(o.o_lineitems), o_orderstatus = 'F'
    predicates on l1: l1.l_receiptdate > l1.l_commitdate
@@ -3183,12 +3183,12 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=1
 |  |
 |  01:SCAN HDFS [tpch_nested_parquet.customer c]
-|     partitions=1/1 files=4 size=288.99MB
+|     HDFS partitions=1/1 files=4 size=288.99MB
 |     predicates: c_acctbal > 0, substr(c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17')
 |     row-size=35B cardinality=15.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: substr(c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17')
    row-size=47B cardinality=15.00K
 ---- DISTRIBUTEDPLAN
@@ -3244,12 +3244,12 @@ PLAN-ROOT SINK
 |  |  row-size=8B cardinality=1
 |  |
 |  01:SCAN HDFS [tpch_nested_parquet.customer c]
-|     partitions=1/1 files=4 size=288.99MB
+|     HDFS partitions=1/1 files=4 size=288.99MB
 |     predicates: c_acctbal > 0, substr(c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17')
 |     row-size=35B cardinality=15.00K
 |
 00:SCAN HDFS [tpch_nested_parquet.customer c]
-   partitions=1/1 files=4 size=288.99MB
+   HDFS partitions=1/1 files=4 size=288.99MB
    predicates: substr(c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17')
    row-size=47B cardinality=15.00K
 ====
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/views.test b/testdata/workloads/functional-planner/queries/PlannerTest/views.test
index 7e64613..7a9b5b0 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/views.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/views.test
@@ -4,7 +4,7 @@ select int_col, string_col from functional.alltypes_view
 PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=17B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
 PLAN-ROOT SINK
@@ -12,7 +12,7 @@ PLAN-ROOT SINK
 01:EXCHANGE [UNPARTITIONED]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=17B cardinality=7.30K
 ====
 # Basic test with a complex view.
@@ -22,13 +22,13 @@ PLAN-ROOT SINK
 |
 04:TOP-N [LIMIT=100]
 |  order by: b.string_col ASC
-|  row-size=21B cardinality=0
+|  row-size=21B cardinality=1
 |
 03:AGGREGATE [FINALIZE]
 |  output: count(a.bigint_col)
 |  group by: b.string_col
 |  having: count(a.bigint_col) > 1
-|  row-size=21B cardinality=0
+|  row-size=21B cardinality=1
 |
 02:HASH JOIN [INNER JOIN]
 |  hash predicates: a.id = b.id
@@ -36,11 +36,11 @@ PLAN-ROOT SINK
 |  row-size=29B cardinality=1
 |
 |--01:SCAN HDFS [functional.alltypestiny b]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=17B cardinality=8
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: a.bigint_col < 50
    runtime filters: RF000 -> a.id
    row-size=12B cardinality=1.10K
@@ -53,13 +53,13 @@ PLAN-ROOT SINK
 |
 04:TOP-N [LIMIT=100]
 |  order by: b.string_col ASC
-|  row-size=21B cardinality=0
+|  row-size=21B cardinality=1
 |
 07:AGGREGATE [FINALIZE]
 |  output: count:merge(a.bigint_col)
 |  group by: b.string_col
 |  having: count(a.bigint_col) > 1
-|  row-size=21B cardinality=0
+|  row-size=21B cardinality=1
 |
 06:EXCHANGE [HASH(b.string_col)]
 |
@@ -76,11 +76,11 @@ PLAN-ROOT SINK
 |--05:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [functional.alltypestiny b]
-|     partitions=4/4 files=4 size=460B
+|     HDFS partitions=4/4 files=4 size=460B
 |     row-size=17B cardinality=8
 |
 00:SCAN HDFS [functional.alltypesagg a]
-   partitions=11/11 files=11 size=814.73KB
+   HDFS partitions=11/11 files=11 size=814.73KB
    predicates: a.bigint_col < 50
    runtime filters: RF000 -> a.id
    row-size=12B cardinality=1.10K
@@ -91,7 +91,7 @@ select int_col, string_col from functional.view_view
 PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=17B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
 PLAN-ROOT SINK
@@ -99,7 +99,7 @@ PLAN-ROOT SINK
 01:EXCHANGE [UNPARTITIONED]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=17B cardinality=7.30K
 ====
 # view used in a union.
@@ -112,12 +112,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=8.03K
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: functional.alltypes.id < 10
 |     row-size=89B cardinality=730
 |
 01:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
 PLAN-ROOT SINK
@@ -128,12 +128,12 @@ PLAN-ROOT SINK
 |  row-size=89B cardinality=8.03K
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: functional.alltypes.id < 10
 |     row-size=89B cardinality=730
 |
 01:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ====
 # view used in an inline view.
@@ -143,7 +143,7 @@ where t.id < 10
 PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id < 10
    row-size=4B cardinality=730
 ---- DISTRIBUTEDPLAN
@@ -152,7 +152,7 @@ PLAN-ROOT SINK
 01:EXCHANGE [UNPARTITIONED]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id < 10
    row-size=4B cardinality=730
 ====
@@ -169,13 +169,13 @@ PLAN-ROOT SINK
 |
 |--06:TOP-N [LIMIT=100]
 |  |  order by: b.string_col ASC
-|  |  row-size=21B cardinality=0
+|  |  row-size=21B cardinality=1
 |  |
 |  05:AGGREGATE [FINALIZE]
 |  |  output: count(a.bigint_col)
 |  |  group by: b.string_col
 |  |  having: count(a.bigint_col) > 1
-|  |  row-size=21B cardinality=0
+|  |  row-size=21B cardinality=1
 |  |
 |  04:HASH JOIN [INNER JOIN]
 |  |  hash predicates: a.id = b.id
@@ -183,11 +183,11 @@ PLAN-ROOT SINK
 |  |  row-size=29B cardinality=1
 |  |
 |  |--03:SCAN HDFS [functional.alltypestiny b]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=17B cardinality=8
 |  |
 |  02:SCAN HDFS [functional.alltypesagg a]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: a.bigint_col < 50
 |     runtime filters: RF004 -> a.id
 |     row-size=12B cardinality=1.10K
@@ -198,13 +198,13 @@ PLAN-ROOT SINK
 |  row-size=122B cardinality=730
 |
 |--01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: functional.alltypes.int_col > 1
 |     runtime filters: RF000 -> int_col
 |     row-size=33B cardinality=730
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id > 1
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=730
@@ -213,12 +213,12 @@ PLAN-ROOT SINK
 |
 16:EXCHANGE [UNPARTITIONED]
 |
-08:HASH JOIN [INNER JOIN, BROADCAST]
+08:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: int_col = count(a.bigint_col)
 |  runtime filters: RF000 <- count(a.bigint_col)
 |  row-size=143B cardinality=730
 |
-|--15:EXCHANGE [BROADCAST]
+|--15:EXCHANGE [HASH(count(a.bigint_col))]
 |  |
 |  14:MERGING-EXCHANGE [UNPARTITIONED]
 |  |  order by: b.string_col ASC
@@ -226,13 +226,13 @@ PLAN-ROOT SINK
 |  |
 |  06:TOP-N [LIMIT=100]
 |  |  order by: b.string_col ASC
-|  |  row-size=21B cardinality=0
+|  |  row-size=21B cardinality=1
 |  |
 |  13:AGGREGATE [FINALIZE]
 |  |  output: count:merge(a.bigint_col)
 |  |  group by: b.string_col
 |  |  having: count(a.bigint_col) > 1
-|  |  row-size=21B cardinality=0
+|  |  row-size=21B cardinality=1
 |  |
 |  12:EXCHANGE [HASH(b.string_col)]
 |  |
@@ -249,11 +249,11 @@ PLAN-ROOT SINK
 |  |--11:EXCHANGE [BROADCAST]
 |  |  |
 |  |  03:SCAN HDFS [functional.alltypestiny b]
-|  |     partitions=4/4 files=4 size=460B
+|  |     HDFS partitions=4/4 files=4 size=460B
 |  |     row-size=17B cardinality=8
 |  |
 |  02:SCAN HDFS [functional.alltypesagg a]
-|     partitions=11/11 files=11 size=814.73KB
+|     HDFS partitions=11/11 files=11 size=814.73KB
 |     predicates: a.bigint_col < 50
 |     runtime filters: RF004 -> a.id
 |     row-size=12B cardinality=1.10K
@@ -266,7 +266,7 @@ PLAN-ROOT SINK
 |--10:EXCHANGE [HASH(int_col)]
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     predicates: functional.alltypes.int_col > 1
 |     runtime filters: RF000 -> int_col
 |     row-size=33B cardinality=730
@@ -274,7 +274,7 @@ PLAN-ROOT SINK
 09:EXCHANGE [HASH(functional.alltypes.id)]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: functional.alltypes.id > 1
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=730
@@ -293,7 +293,7 @@ PLAN-ROOT SINK
 |  row-size=267B cardinality=7.30K
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [INNER JOIN]
@@ -302,12 +302,12 @@ PLAN-ROOT SINK
 |  row-size=178B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> functional.alltypes.id
 |     row-size=89B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -323,7 +323,7 @@ PLAN-ROOT SINK
 |--07:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -334,14 +334,14 @@ PLAN-ROOT SINK
 |--06:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> functional.alltypes.id
 |     row-size=89B cardinality=7.30K
 |
 05:EXCHANGE [HASH(functional.alltypes.id)]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=7.30K
 ====
@@ -359,7 +359,7 @@ PLAN-ROOT SINK
 |  row-size=267B cardinality=7.30K
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [INNER JOIN]
@@ -368,12 +368,12 @@ PLAN-ROOT SINK
 |  row-size=178B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> functional.alltypes.id
 |     row-size=89B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -389,7 +389,7 @@ PLAN-ROOT SINK
 |--07:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -400,14 +400,14 @@ PLAN-ROOT SINK
 |--06:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> functional.alltypes.id
 |     row-size=89B cardinality=7.30K
 |
 05:EXCHANGE [HASH(functional.alltypes.id)]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=7.30K
 ====
@@ -424,7 +424,7 @@ PLAN-ROOT SINK
 |  row-size=267B cardinality=14.60K
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [LEFT OUTER JOIN]
@@ -432,11 +432,11 @@ PLAN-ROOT SINK
 |  row-size=178B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
 PLAN-ROOT SINK
@@ -450,7 +450,7 @@ PLAN-ROOT SINK
 |--07:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [LEFT OUTER JOIN, PARTITIONED]
@@ -460,13 +460,13 @@ PLAN-ROOT SINK
 |--06:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 05:EXCHANGE [HASH(functional.alltypes.id)]
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    row-size=89B cardinality=7.30K
 ====
 # Self-join of view to make sure join hints are properly set
@@ -485,7 +485,7 @@ PLAN-ROOT SINK
 |  row-size=267B cardinality=7.30K
 |
 |--02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 03:HASH JOIN [INNER JOIN]
@@ -494,12 +494,12 @@ PLAN-ROOT SINK
 |  row-size=178B cardinality=7.30K
 |
 |--01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> functional.alltypes.id
 |     row-size=89B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=7.30K
 ---- DISTRIBUTEDPLAN
@@ -515,7 +515,7 @@ PLAN-ROOT SINK
 |--07:EXCHANGE [HASH(functional.alltypes.id)]
 |  |
 |  02:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     row-size=89B cardinality=7.30K
 |
 06:EXCHANGE [HASH(functional.alltypes.id)]
@@ -528,12 +528,12 @@ PLAN-ROOT SINK
 |--05:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [functional.alltypes]
-|     partitions=24/24 files=24 size=478.45KB
+|     HDFS partitions=24/24 files=24 size=478.45KB
 |     runtime filters: RF000 -> functional.alltypes.id
 |     row-size=89B cardinality=7.30K
 |
 00:SCAN HDFS [functional.alltypes]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    runtime filters: RF000 -> functional.alltypes.id, RF002 -> functional.alltypes.id
    row-size=89B cardinality=7.30K
 ====
@@ -545,7 +545,7 @@ PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypes]
    partition predicates: `year` = 2009, `month` = 1
-   partitions=1/24 files=1 size=19.95KB
+   HDFS partitions=1/24 files=1 size=19.95KB
    predicates: (int_col < 100 OR bool_col = FALSE)
    row-size=89B cardinality=31
 ---- DISTRIBUTEDPLAN
@@ -555,7 +555,7 @@ PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypes]
    partition predicates: `year` = 2009, `month` = 1
-   partitions=1/24 files=1 size=19.95KB
+   HDFS partitions=1/24 files=1 size=19.95KB
    predicates: (int_col < 100 OR bool_col = FALSE)
    row-size=89B cardinality=31
 ====
@@ -566,7 +566,7 @@ select bool_col FROM ( SELECT bool_col FROM functional.alltypes t ) t WHERE t.bo
 PLAN-ROOT SINK
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: bool_col
    row-size=1B cardinality=730
 ---- DISTRIBUTEDPLAN
@@ -575,7 +575,7 @@ PLAN-ROOT SINK
 01:EXCHANGE [UNPARTITIONED]
 |
 00:SCAN HDFS [functional.alltypes t]
-   partitions=24/24 files=24 size=478.45KB
+   HDFS partitions=24/24 files=24 size=478.45KB
    predicates: bool_col
    row-size=1B cardinality=730
 ====


[impala] 01/02: IMPALA-2312: simplify stopwatch ElapsedTime()

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

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

commit 0ff7c8118554258cdc46a3499ef98e1f62d6c533
Author: Tim Armstrong <ta...@cloudera.com>
AuthorDate: Tue Sep 24 08:09:25 2019 -0700

    IMPALA-2312: simplify stopwatch ElapsedTime()
    
    The stopwatches had two subtly different ElapsedTime()
    interfaces, one that included previous running time
    and one that didn't. They do not appear to be both
    needed. I looked through all the uses and in all
    cases using the old TotalElapsedTime() in place of
    ElapsedTime() is equivalent, either because the
    stopwatch is stopped when ElapsedTime() is called
    or because Stop() is never called.
    
    Change-Id: I004833681248de65ce709fc746269686507aba54
    Reviewed-on: http://gerrit.cloudera.org:8080/14293
    Reviewed-by: Tim Armstrong <ta...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/src/exec/blocking-join-node.cc |  2 +-
 be/src/util/stopwatch.h           | 48 ++++++++++++++++-----------------------
 2 files changed, 21 insertions(+), 29 deletions(-)

diff --git a/be/src/exec/blocking-join-node.cc b/be/src/exec/blocking-join-node.cc
index ba1a758..fabfc5f 100644
--- a/be/src/exec/blocking-join-node.cc
+++ b/be/src/exec/blocking-join-node.cc
@@ -346,7 +346,7 @@ int64_t BlockingJoinNode::LocalTimeCounterFn(const RuntimeProfile::Counter* tota
     const RuntimeProfile::Counter* right_child_time,
     const MonotonicStopWatch* child_overlap_timer) {
   int64_t local_time = total_time->value() - left_child_time->value() -
-      (right_child_time->value() - child_overlap_timer->TotalElapsedTime());
+      (right_child_time->value() - child_overlap_timer->ElapsedTime());
   // While the calculation is correct at the end of the execution, counter value
   // and the stop watch reading is not accurate during execution.
   // If the child time counter is updated before the parent time counter, then the child
diff --git a/be/src/util/stopwatch.h b/be/src/util/stopwatch.h
index 4def381..d9c5d99 100644
--- a/be/src/util/stopwatch.h
+++ b/be/src/util/stopwatch.h
@@ -59,20 +59,14 @@ class StopWatch {
   }
 
   void Stop() {
-    if (running_) {
-      total_time_ += Rdtsc() - start_;
-      running_ = false;
-    }
+    total_time_ += RunningTime();
+    running_ = false;
   }
 
-  /// Returns time in cpu ticks.
+  /// Returns total time in cpu ticks for which the stopwatch was running, including
+  /// the time since Start() was called, if it is currently running.
   uint64_t ElapsedTime() const {
-    return running_ ? Rdtsc() - start_ : total_time_;
-  }
-
-  /// Returns the total time accumulated
-  uint64_t TotalElapsedTime() const {
-    return total_time_ + (running_ ? Rdtsc() - start_ : 0);
+    return total_time_ + RunningTime();
   }
 
   static uint64_t Rdtsc() {
@@ -85,6 +79,11 @@ class StopWatch {
   }
 
  private:
+  /// Returns total time in cpu ticks since Start() was called. If not running, returns 0.
+  uint64_t RunningTime() const {
+    return running_ ? Rdtsc() - start_ : 0;
+  }
+
   uint64_t start_, total_time_;
   bool running_;
 };
@@ -113,10 +112,8 @@ class MonotonicStopWatch {
   }
 
   void Stop() {
-    if (running_) {
-      total_time_ += ElapsedTime();
-      running_ = false;
-    }
+    total_time_ += RunningTime();
+    running_ = false;
   }
 
   /// Set the time ceiling of the stop watch to Now(). The stop watch won't run past the
@@ -125,7 +122,7 @@ class MonotonicStopWatch {
 
   /// Restarts the timer. Returns the elapsed time until this point.
   uint64_t Reset() {
-    uint64_t ret = ElapsedTime();
+    uint64_t ret = RunningTime();
     if (running_) {
       start_ = Now();
       time_ceiling_ = 0;
@@ -133,16 +130,10 @@ class MonotonicStopWatch {
     return ret;
   }
 
-  /// Returns time in nanosecond.
+  /// Returns total time in nanoseconds for which the stopwatch was running, including
+  /// the time since Start() was called, if it is currently running.
   uint64_t ElapsedTime() const {
-    if (running_) return RunningTime();
-    return total_time_;
-  }
-
-  /// Returns the total time accumulated
-  uint64_t TotalElapsedTime() const {
-    if (running_) return total_time_ + RunningTime();
-    return total_time_;
+    return total_time_ + RunningTime();
   }
 
   /// Returns an representation of the current time in nanoseconds. It can be used to
@@ -176,9 +167,10 @@ class MonotonicStopWatch {
   /// True if stopwatch is running.
   bool running_;
 
-  /// Returns the time since start.
+  /// Returns the time since Start() was called, if running. Otherwise return 0.
   /// If time_ceiling_ is set, the stop watch won't run pass the ceiling.
   uint64_t RunningTime() const {
+    if (!running_) return 0;
     uint64_t end = Now();
     if (time_ceiling_ > 0) {
       if (time_ceiling_ < start_) return 0;
@@ -221,13 +213,13 @@ class ConcurrentStopWatch {
   /// Returns delta wall time since last time LapTime() is called.
   uint64_t LapTime() {
     boost::lock_guard<SpinLock> l(thread_counter_lock_);
-    uint64_t now = msw_.TotalElapsedTime();
+    uint64_t now = msw_.ElapsedTime();
     uint64_t lap_duration = now - last_lap_start_;
     last_lap_start_ = now;
     return lap_duration;
   }
 
-  uint64_t TotalRunningTime() const {  return msw_.TotalElapsedTime(); }
+  uint64_t TotalRunningTime() const {  return msw_.ElapsedTime(); }
 
  private:
   MonotonicStopWatch msw_;