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/01/12 18:19:06 UTC

[07/26] impala git commit: IMPALA-8021: Add estimated cardinality to EXPLAIN output

http://git-wip-us.apache.org/repos/asf/impala/blob/a7ea86b7/testdata/workloads/functional-planner/queries/PlannerTest/tpch-all.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpch-all.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpch-all.test
index 4bab956..2497fd7 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpch-all.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/tpch-all.test
@@ -28,14 +28,17 @@ PLAN-ROOT SINK
 |
 02:SORT
 |  order by: l_returnflag ASC, l_linestatus ASC
+|  row-size=122B cardinality=6
 |
 01:AGGREGATE [FINALIZE]
 |  output: sum(l_quantity), sum(l_extendedprice), sum(l_extendedprice * (1 - l_discount)), sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)), avg(l_quantity), avg(l_extendedprice), avg(l_discount), count(*)
 |  group by: l_returnflag, l_linestatus
+|  row-size=122B cardinality=6
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate <= '1998-09-02'
+   row-size=80B cardinality=600.12K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=23.94MB Threads=4
 Per-Host Resource Estimates: Memory=296MB
@@ -46,20 +49,24 @@ PLAN-ROOT SINK
 |
 02:SORT
 |  order by: l_returnflag ASC, l_linestatus ASC
+|  row-size=122B cardinality=6
 |
 04:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_quantity), sum:merge(l_extendedprice), sum:merge(l_extendedprice * (1 - l_discount)), sum:merge(l_extendedprice * (1 - l_discount) * (1 + l_tax)), avg:merge(l_quantity), avg:merge(l_extendedprice), avg:merge(l_discount), count:merge(*)
 |  group by: l_returnflag, l_linestatus
+|  row-size=122B cardinality=6
 |
 03:EXCHANGE [HASH(l_returnflag,l_linestatus)]
 |
 01:AGGREGATE [STREAMING]
 |  output: sum(l_quantity), sum(l_extendedprice), sum(l_extendedprice * (1 - l_discount)), sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)), avg(l_quantity), avg(l_extendedprice), avg(l_discount), count(*)
 |  group by: l_returnflag, l_linestatus
+|  row-size=122B cardinality=6
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate <= '1998-09-02'
+   row-size=80B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=47.88MB Threads=5
 Per-Host Resource Estimates: Memory=240MB
@@ -70,20 +77,24 @@ PLAN-ROOT SINK
 |
 02:SORT
 |  order by: l_returnflag ASC, l_linestatus ASC
+|  row-size=122B cardinality=6
 |
 04:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_quantity), sum:merge(l_extendedprice), sum:merge(l_extendedprice * (1 - l_discount)), sum:merge(l_extendedprice * (1 - l_discount) * (1 + l_tax)), avg:merge(l_quantity), avg:merge(l_extendedprice), avg:merge(l_discount), count:merge(*)
 |  group by: l_returnflag, l_linestatus
+|  row-size=122B cardinality=6
 |
 03:EXCHANGE [HASH(l_returnflag,l_linestatus)]
 |
 01:AGGREGATE [STREAMING]
 |  output: sum(l_quantity), sum(l_extendedprice), sum(l_extendedprice * (1 - l_discount)), sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)), avg(l_quantity), avg(l_extendedprice), avg(l_discount), count(*)
 |  group by: l_returnflag, l_linestatus
+|  row-size=122B cardinality=6
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate <= '1998-09-02'
+   row-size=80B cardinality=600.12K
 ====
 # TPCH-Q2
 # Q2 - Minimum Cost Supplier Query
@@ -138,78 +149,97 @@ PLAN-ROOT SINK
 |
 18:TOP-N [LIMIT=100]
 |  order by: s_acctbal DESC, n_name ASC, s_name ASC, p_partkey ASC
+|  row-size=230B cardinality=100
 |
 17:HASH JOIN [RIGHT SEMI JOIN]
 |  hash predicates: ps_partkey = p_partkey, min(ps_supplycost) = ps_supplycost
 |  runtime filters: RF000 <- p_partkey
+|  row-size=325B cardinality=1.01K
 |
 |--16:HASH JOIN [INNER JOIN]
 |  |  hash predicates: n_regionkey = r_regionkey
 |  |  runtime filters: RF010 <- r_regionkey
+|  |  row-size=325B cardinality=1.01K
 |  |
 |  |--04:SCAN HDFS [tpch.region]
 |  |     partitions=1/1 files=1 size=384B
 |  |     predicates: r_name = 'EUROPE'
+|  |     row-size=21B cardinality=1
 |  |
 |  15:HASH JOIN [INNER JOIN]
 |  |  hash predicates: s_nationkey = n_nationkey
 |  |  runtime filters: RF012 <- n_nationkey
+|  |  row-size=304B cardinality=5.05K
 |  |
 |  |--03:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     runtime filters: RF010 -> n_regionkey
+|  |     row-size=23B cardinality=25
 |  |
 |  14:HASH JOIN [INNER JOIN]
 |  |  hash predicates: s_suppkey = ps_suppkey
 |  |  runtime filters: RF014 <- ps_suppkey
+|  |  row-size=281B cardinality=5.05K
 |  |
 |  |--13:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: ps_partkey = p_partkey
 |  |  |  runtime filters: RF016 <- p_partkey
+|  |  |  row-size=95B cardinality=5.05K
 |  |  |
 |  |  |--00:SCAN HDFS [tpch.part]
 |  |  |     partitions=1/1 files=1 size=22.83MB
 |  |  |     predicates: p_size = 15, p_type LIKE '%BRASS'
+|  |  |     row-size=71B cardinality=1.26K
 |  |  |
 |  |  02:SCAN HDFS [tpch.partsupp]
 |  |     partitions=1/1 files=1 size=112.71MB
 |  |     runtime filters: RF016 -> ps_partkey
+|  |     row-size=24B cardinality=800.00K
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF012 -> s_nationkey, RF014 -> s_suppkey
+|     row-size=187B cardinality=10.00K
 |
 12:AGGREGATE [FINALIZE]
 |  output: min(ps_supplycost)
 |  group by: ps_partkey
+|  row-size=16B cardinality=160.00K
 |
 11:HASH JOIN [INNER JOIN]
 |  hash predicates: n_regionkey = r_regionkey
 |  runtime filters: RF004 <- r_regionkey
+|  row-size=59B cardinality=160.00K
 |
 |--08:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'EUROPE'
+|     row-size=21B cardinality=1
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF006 <- n_nationkey
+|  row-size=38B cardinality=800.00K
 |
 |--07:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF004 -> n_regionkey
+|     row-size=4B cardinality=25
 |
 09:HASH JOIN [INNER JOIN]
 |  hash predicates: ps_suppkey = s_suppkey
 |  runtime filters: RF008 <- s_suppkey
+|  row-size=34B cardinality=800.00K
 |
 |--06:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF006 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 05:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF000 -> tpch.partsupp.ps_partkey, RF008 -> ps_suppkey
+   row-size=24B cardinality=800.00K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=65.28MB Threads=21
 Per-Host Resource Estimates: Memory=662MB
@@ -221,102 +251,122 @@ PLAN-ROOT SINK
 |
 18:TOP-N [LIMIT=100]
 |  order by: s_acctbal DESC, n_name ASC, s_name ASC, p_partkey ASC
+|  row-size=230B cardinality=100
 |
 17:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
 |  hash predicates: ps_partkey = p_partkey, min(ps_supplycost) = ps_supplycost
 |  runtime filters: RF000 <- p_partkey
+|  row-size=325B cardinality=1.01K
 |
 |--29:EXCHANGE [HASH(p_partkey,ps_supplycost)]
 |  |
 |  16:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: n_regionkey = r_regionkey
 |  |  runtime filters: RF010 <- r_regionkey
+|  |  row-size=325B cardinality=1.01K
 |  |
 |  |--27:EXCHANGE [BROADCAST]
 |  |  |
 |  |  04:SCAN HDFS [tpch.region]
 |  |     partitions=1/1 files=1 size=384B
 |  |     predicates: r_name = 'EUROPE'
+|  |     row-size=21B cardinality=1
 |  |
 |  15:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: s_nationkey = n_nationkey
 |  |  runtime filters: RF012 <- n_nationkey
+|  |  row-size=304B cardinality=5.05K
 |  |
 |  |--26:EXCHANGE [BROADCAST]
 |  |  |
 |  |  03:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     runtime filters: RF010 -> n_regionkey
+|  |     row-size=23B cardinality=25
 |  |
 |  14:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: s_suppkey = ps_suppkey
 |  |  runtime filters: RF014 <- ps_suppkey
+|  |  row-size=281B cardinality=5.05K
 |  |
 |  |--25:EXCHANGE [BROADCAST]
 |  |  |
 |  |  13:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  |  hash predicates: ps_partkey = p_partkey
 |  |  |  runtime filters: RF016 <- p_partkey
+|  |  |  row-size=95B cardinality=5.05K
 |  |  |
 |  |  |--24:EXCHANGE [BROADCAST]
 |  |  |  |
 |  |  |  00:SCAN HDFS [tpch.part]
 |  |  |     partitions=1/1 files=1 size=22.83MB
 |  |  |     predicates: p_size = 15, p_type LIKE '%BRASS'
+|  |  |     row-size=71B cardinality=1.26K
 |  |  |
 |  |  02:SCAN HDFS [tpch.partsupp]
 |  |     partitions=1/1 files=1 size=112.71MB
 |  |     runtime filters: RF016 -> ps_partkey
+|  |     row-size=24B cardinality=800.00K
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF012 -> s_nationkey, RF014 -> s_suppkey
+|     row-size=187B cardinality=10.00K
 |
 28:EXCHANGE [HASH(ps_partkey,min(ps_supplycost))]
 |
 23:AGGREGATE [FINALIZE]
 |  output: min:merge(ps_supplycost)
 |  group by: ps_partkey
+|  row-size=16B cardinality=160.00K
 |
 22:EXCHANGE [HASH(ps_partkey)]
 |
 12:AGGREGATE [STREAMING]
 |  output: min(ps_supplycost)
 |  group by: ps_partkey
+|  row-size=16B cardinality=160.00K
 |
 11:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: n_regionkey = r_regionkey
 |  runtime filters: RF004 <- r_regionkey
+|  row-size=59B cardinality=160.00K
 |
 |--21:EXCHANGE [BROADCAST]
 |  |
 |  08:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'EUROPE'
+|     row-size=21B cardinality=1
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF006 <- n_nationkey
+|  row-size=38B cardinality=800.00K
 |
 |--20:EXCHANGE [BROADCAST]
 |  |
 |  07:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF004 -> n_regionkey
+|     row-size=4B cardinality=25
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: ps_suppkey = s_suppkey
 |  runtime filters: RF008 <- s_suppkey
+|  row-size=34B cardinality=800.00K
 |
 |--19:EXCHANGE [BROADCAST]
 |  |
 |  06:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF006 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 05:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF000 -> tpch.partsupp.ps_partkey, RF008 -> ps_suppkey
+   row-size=24B cardinality=800.00K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=122.81MB Threads=23
 Per-Host Resource Estimates: Memory=713MB
@@ -328,10 +378,12 @@ PLAN-ROOT SINK
 |
 18:TOP-N [LIMIT=100]
 |  order by: s_acctbal DESC, n_name ASC, s_name ASC, p_partkey ASC
+|  row-size=230B cardinality=100
 |
 17:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
 |  hash predicates: ps_partkey = p_partkey, min(ps_supplycost) = ps_supplycost
 |  runtime filters: RF000 <- p_partkey
+|  row-size=325B cardinality=1.01K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -342,6 +394,7 @@ PLAN-ROOT SINK
 |  16:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: n_regionkey = r_regionkey
 |  |  runtime filters: RF010 <- r_regionkey
+|  |  row-size=325B cardinality=1.01K
 |  |
 |  |--JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=02
@@ -352,10 +405,12 @@ PLAN-ROOT SINK
 |  |  04:SCAN HDFS [tpch.region]
 |  |     partitions=1/1 files=1 size=384B
 |  |     predicates: r_name = 'EUROPE'
+|  |     row-size=21B cardinality=1
 |  |
 |  15:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: s_nationkey = n_nationkey
 |  |  runtime filters: RF012 <- n_nationkey
+|  |  row-size=304B cardinality=5.05K
 |  |
 |  |--JOIN BUILD
 |  |  |  join-table-id=02 plan-id=03 cohort-id=02
@@ -366,10 +421,12 @@ PLAN-ROOT SINK
 |  |  03:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     runtime filters: RF010 -> n_regionkey
+|  |     row-size=23B cardinality=25
 |  |
 |  14:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: s_suppkey = ps_suppkey
 |  |  runtime filters: RF014 <- ps_suppkey
+|  |  row-size=281B cardinality=5.05K
 |  |
 |  |--JOIN BUILD
 |  |  |  join-table-id=03 plan-id=04 cohort-id=02
@@ -380,6 +437,7 @@ PLAN-ROOT SINK
 |  |  13:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  |  hash predicates: ps_partkey = p_partkey
 |  |  |  runtime filters: RF016 <- p_partkey
+|  |  |  row-size=95B cardinality=5.05K
 |  |  |
 |  |  |--JOIN BUILD
 |  |  |  |  join-table-id=04 plan-id=05 cohort-id=03
@@ -390,30 +448,36 @@ PLAN-ROOT SINK
 |  |  |  00:SCAN HDFS [tpch.part]
 |  |  |     partitions=1/1 files=1 size=22.83MB
 |  |  |     predicates: p_size = 15, p_type LIKE '%BRASS'
+|  |  |     row-size=71B cardinality=1.26K
 |  |  |
 |  |  02:SCAN HDFS [tpch.partsupp]
 |  |     partitions=1/1 files=1 size=112.71MB
 |  |     runtime filters: RF016 -> ps_partkey
+|  |     row-size=24B cardinality=800.00K
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF012 -> s_nationkey, RF014 -> s_suppkey
+|     row-size=187B cardinality=10.00K
 |
 28:EXCHANGE [HASH(ps_partkey,min(ps_supplycost))]
 |
 23:AGGREGATE [FINALIZE]
 |  output: min:merge(ps_supplycost)
 |  group by: ps_partkey
+|  row-size=16B cardinality=160.00K
 |
 22:EXCHANGE [HASH(ps_partkey)]
 |
 12:AGGREGATE [STREAMING]
 |  output: min(ps_supplycost)
 |  group by: ps_partkey
+|  row-size=16B cardinality=160.00K
 |
 11:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: n_regionkey = r_regionkey
 |  runtime filters: RF004 <- r_regionkey
+|  row-size=59B cardinality=160.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=05 plan-id=06 cohort-id=01
@@ -424,10 +488,12 @@ PLAN-ROOT SINK
 |  08:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'EUROPE'
+|     row-size=21B cardinality=1
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF006 <- n_nationkey
+|  row-size=38B cardinality=800.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=06 plan-id=07 cohort-id=01
@@ -438,10 +504,12 @@ PLAN-ROOT SINK
 |  07:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF004 -> n_regionkey
+|     row-size=4B cardinality=25
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: ps_suppkey = s_suppkey
 |  runtime filters: RF008 <- s_suppkey
+|  row-size=34B cardinality=800.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=07 plan-id=08 cohort-id=01
@@ -452,10 +520,12 @@ PLAN-ROOT SINK
 |  06:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF006 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 05:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF000 -> tpch.partsupp.ps_partkey, RF008 -> ps_suppkey
+   row-size=24B cardinality=800.00K
 ====
 # TPCH-Q3
 # Q3 - Shipping Priority Query
@@ -489,32 +559,39 @@ PLAN-ROOT SINK
 |
 06:TOP-N [LIMIT=10]
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC, o_orderdate ASC
+|  row-size=50B cardinality=10
 |
 05:AGGREGATE [FINALIZE]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: l_orderkey, o_orderdate, o_shippriority
+|  row-size=50B cardinality=17.56K
 |
 04:HASH JOIN [INNER JOIN]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF000 <- c_custkey
+|  row-size=117B cardinality=17.56K
 |
 |--00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     predicates: c_mktsegment = 'BUILDING'
+|     row-size=29B cardinality=30.00K
 |
 03:HASH JOIN [INNER JOIN]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF002 <- o_orderkey
+|  row-size=88B cardinality=57.58K
 |
 |--01:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1995-03-15'
 |     runtime filters: RF000 -> o_custkey
+|     row-size=42B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate > '1995-03-15'
    runtime filters: RF002 -> l_orderkey
+   row-size=46B cardinality=600.12K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=41.38MB Threads=8
 Per-Host Resource Estimates: Memory=545MB
@@ -526,30 +603,36 @@ PLAN-ROOT SINK
 |
 06:TOP-N [LIMIT=10]
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC, o_orderdate ASC
+|  row-size=50B cardinality=10
 |
 10:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: l_orderkey, o_orderdate, o_shippriority
+|  row-size=50B cardinality=17.56K
 |
 09:EXCHANGE [HASH(l_orderkey,o_orderdate,o_shippriority)]
 |
 05:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: l_orderkey, o_orderdate, o_shippriority
+|  row-size=50B cardinality=17.56K
 |
 04:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF000 <- c_custkey
+|  row-size=117B cardinality=17.56K
 |
 |--08:EXCHANGE [BROADCAST]
 |  |
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     predicates: c_mktsegment = 'BUILDING'
+|     row-size=29B cardinality=30.00K
 |
 03:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF002 <- o_orderkey
+|  row-size=88B cardinality=57.58K
 |
 |--07:EXCHANGE [BROADCAST]
 |  |
@@ -557,11 +640,13 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1995-03-15'
 |     runtime filters: RF000 -> o_custkey
+|     row-size=42B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate > '1995-03-15'
    runtime filters: RF002 -> l_orderkey
+   row-size=46B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=82.75MB Threads=9
 Per-Host Resource Estimates: Memory=484MB
@@ -573,20 +658,24 @@ PLAN-ROOT SINK
 |
 06:TOP-N [LIMIT=10]
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC, o_orderdate ASC
+|  row-size=50B cardinality=10
 |
 10:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: l_orderkey, o_orderdate, o_shippriority
+|  row-size=50B cardinality=17.56K
 |
 09:EXCHANGE [HASH(l_orderkey,o_orderdate,o_shippriority)]
 |
 05:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: l_orderkey, o_orderdate, o_shippriority
+|  row-size=50B cardinality=17.56K
 |
 04:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF000 <- c_custkey
+|  row-size=117B cardinality=17.56K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -597,10 +686,12 @@ PLAN-ROOT SINK
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     predicates: c_mktsegment = 'BUILDING'
+|     row-size=29B cardinality=30.00K
 |
 03:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF002 <- o_orderkey
+|  row-size=88B cardinality=57.58K
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -612,11 +703,13 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1995-03-15'
 |     runtime filters: RF000 -> o_custkey
+|     row-size=42B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate > '1995-03-15'
    runtime filters: RF002 -> l_orderkey
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q4
 # Q4 - Order Priority Checking Query
@@ -648,23 +741,28 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: o_orderpriority ASC
+|  row-size=28B cardinality=5
 |
 03:AGGREGATE [FINALIZE]
 |  output: count(*)
 |  group by: o_orderpriority
+|  row-size=28B cardinality=5
 |
 02:HASH JOIN [RIGHT SEMI JOIN]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF000 <- o_orderkey
+|  row-size=50B cardinality=150.00K
 |
 |--00:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1993-10-01', o_orderdate >= '1993-07-01'
+|     row-size=50B cardinality=150.00K
 |
 01:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_commitdate < l_receiptdate
    runtime filters: RF000 -> l_orderkey
+   row-size=52B cardinality=600.12K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=38.69MB Threads=7
 Per-Host Resource Estimates: Memory=493MB
@@ -675,26 +773,31 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: o_orderpriority ASC
+|  row-size=28B cardinality=5
 |
 08:AGGREGATE [FINALIZE]
 |  output: count:merge(*)
 |  group by: o_orderpriority
+|  row-size=28B cardinality=5
 |
 07:EXCHANGE [HASH(o_orderpriority)]
 |
 03:AGGREGATE [STREAMING]
 |  output: count(*)
 |  group by: o_orderpriority
+|  row-size=28B cardinality=5
 |
 02:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF000 <- o_orderkey
+|  row-size=50B cardinality=150.00K
 |
 |--06:EXCHANGE [HASH(o_orderkey)]
 |  |
 |  00:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1993-10-01', o_orderdate >= '1993-07-01'
+|     row-size=50B cardinality=150.00K
 |
 05:EXCHANGE [HASH(l_orderkey)]
 |
@@ -702,6 +805,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_commitdate < l_receiptdate
    runtime filters: RF000 -> l_orderkey
+   row-size=52B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=73.62MB Threads=9
 Per-Host Resource Estimates: Memory=446MB
@@ -712,20 +816,24 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: o_orderpriority ASC
+|  row-size=28B cardinality=5
 |
 08:AGGREGATE [FINALIZE]
 |  output: count:merge(*)
 |  group by: o_orderpriority
+|  row-size=28B cardinality=5
 |
 07:EXCHANGE [HASH(o_orderpriority)]
 |
 03:AGGREGATE [STREAMING]
 |  output: count(*)
 |  group by: o_orderpriority
+|  row-size=28B cardinality=5
 |
 02:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF000 <- o_orderkey
+|  row-size=50B cardinality=150.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -736,6 +844,7 @@ PLAN-ROOT SINK
 |  00:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1993-10-01', o_orderdate >= '1993-07-01'
+|     row-size=50B cardinality=150.00K
 |
 05:EXCHANGE [HASH(l_orderkey)]
 |
@@ -743,6 +852,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_commitdate < l_receiptdate
    runtime filters: RF000 -> l_orderkey
+   row-size=52B cardinality=600.12K
 ====
 # TPCH-Q5
 # Q5 - Local Supplier Volume Query
@@ -777,55 +887,68 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC
+|  row-size=35B cardinality=25
 |
 11:AGGREGATE [FINALIZE]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: n_name
+|  row-size=35B cardinality=25
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: n_regionkey = r_regionkey
 |  runtime filters: RF000 <- r_regionkey
+|  row-size=134B cardinality=115.16K
 |
 |--05:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'ASIA'
+|     row-size=21B cardinality=1
 |
 09:HASH JOIN [INNER JOIN]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF002 <- n_nationkey
+|  row-size=113B cardinality=575.77K
 |
 |--04:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF000 -> n_regionkey
+|     row-size=23B cardinality=25
 |
 08:HASH JOIN [INNER JOIN]
 |  hash predicates: c_nationkey = s_nationkey, l_suppkey = s_suppkey
 |  runtime filters: RF004 <- s_nationkey, RF005 <- s_suppkey
+|  row-size=90B cardinality=575.77K
 |
 |--03:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF008 <- c_custkey
+|  row-size=80B cardinality=575.77K
 |
 |--00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF002 -> tpch.customer.c_nationkey, RF004 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF010 <- o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--01:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1995-01-01', o_orderdate >= '1994-01-01'
 |     runtime filters: RF008 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF005 -> l_suppkey, RF010 -> l_orderkey
+   row-size=32B cardinality=6.00M
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=70.14MB Threads=14
 Per-Host Resource Estimates: Memory=667MB
@@ -836,60 +959,72 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC
+|  row-size=35B cardinality=25
 |
 19:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: n_name
+|  row-size=35B cardinality=25
 |
 18:EXCHANGE [HASH(n_name)]
 |
 11:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: n_name
+|  row-size=35B cardinality=25
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: n_regionkey = r_regionkey
 |  runtime filters: RF000 <- r_regionkey
+|  row-size=134B cardinality=115.16K
 |
 |--17:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'ASIA'
+|     row-size=21B cardinality=1
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF002 <- n_nationkey
+|  row-size=113B cardinality=575.77K
 |
 |--16:EXCHANGE [BROADCAST]
 |  |
 |  04:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF000 -> n_regionkey
+|     row-size=23B cardinality=25
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = s_nationkey, l_suppkey = s_suppkey
 |  runtime filters: RF004 <- s_nationkey, RF005 <- s_suppkey
+|  row-size=90B cardinality=575.77K
 |
 |--15:EXCHANGE [BROADCAST]
 |  |
 |  03:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF008 <- c_custkey
+|  row-size=80B cardinality=575.77K
 |
 |--14:EXCHANGE [BROADCAST]
 |  |
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF002 -> tpch.customer.c_nationkey, RF004 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 06:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF010 <- o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--13:EXCHANGE [BROADCAST]
 |  |
@@ -897,10 +1032,12 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1995-01-01', o_orderdate >= '1994-01-01'
 |     runtime filters: RF008 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF005 -> l_suppkey, RF010 -> l_orderkey
+   row-size=32B cardinality=6.00M
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=140.28MB Threads=15
 Per-Host Resource Estimates: Memory=632MB
@@ -911,20 +1048,24 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC
+|  row-size=35B cardinality=25
 |
 19:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: n_name
+|  row-size=35B cardinality=25
 |
 18:EXCHANGE [HASH(n_name)]
 |
 11:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: n_name
+|  row-size=35B cardinality=25
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: n_regionkey = r_regionkey
 |  runtime filters: RF000 <- r_regionkey
+|  row-size=134B cardinality=115.16K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -935,10 +1076,12 @@ PLAN-ROOT SINK
 |  05:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'ASIA'
+|     row-size=21B cardinality=1
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF002 <- n_nationkey
+|  row-size=113B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -949,10 +1092,12 @@ PLAN-ROOT SINK
 |  04:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF000 -> n_regionkey
+|     row-size=23B cardinality=25
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = s_nationkey, l_suppkey = s_suppkey
 |  runtime filters: RF004 <- s_nationkey, RF005 <- s_suppkey
+|  row-size=90B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=02 plan-id=03 cohort-id=01
@@ -963,10 +1108,12 @@ PLAN-ROOT SINK
 |  03:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF008 <- c_custkey
+|  row-size=80B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
@@ -977,10 +1124,12 @@ PLAN-ROOT SINK
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF002 -> tpch.customer.c_nationkey, RF004 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 06:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF010 <- o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=04 plan-id=05 cohort-id=01
@@ -992,10 +1141,12 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1995-01-01', o_orderdate >= '1994-01-01'
 |     runtime filters: RF008 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF005 -> l_suppkey, RF010 -> l_orderkey
+   row-size=32B cardinality=6.00M
 ====
 # TPCH-Q6
 # Q6 - Forecasting Revenue Change Query
@@ -1015,10 +1166,12 @@ PLAN-ROOT SINK
 |
 01:AGGREGATE [FINALIZE]
 |  output: sum(l_extendedprice * l_discount)
+|  row-size=16B cardinality=1
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_discount <= 0.07, l_discount >= 0.05, l_quantity < 24, l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
+   row-size=46B cardinality=600.12K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=8.00MB Threads=3
 Per-Host Resource Estimates: Memory=284MB
@@ -1026,15 +1179,18 @@ PLAN-ROOT SINK
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * l_discount)
+|  row-size=16B cardinality=1
 |
 02:EXCHANGE [UNPARTITIONED]
 |
 01:AGGREGATE
 |  output: sum(l_extendedprice * l_discount)
+|  row-size=16B cardinality=1
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_discount <= 0.07, l_discount >= 0.05, l_quantity < 24, l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
+   row-size=46B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=16.00MB Threads=3
 Per-Host Resource Estimates: Memory=206MB
@@ -1042,15 +1198,18 @@ PLAN-ROOT SINK
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * l_discount)
+|  row-size=16B cardinality=1
 |
 02:EXCHANGE [UNPARTITIONED]
 |
 01:AGGREGATE
 |  output: sum(l_extendedprice * l_discount)
+|  row-size=16B cardinality=1
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_discount <= 0.07, l_discount >= 0.05, l_quantity < 24, l_shipdate < '1995-01-01', l_shipdate >= '1994-01-01'
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q7
 # Q7 - Volume Shipping Query
@@ -1099,54 +1258,67 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: supp_nation ASC, cust_nation ASC, l_year ASC
+|  row-size=58B cardinality=575.77K
 |
 11:AGGREGATE [FINALIZE]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: n1.n_name, n2.n_name, year(l_shipdate)
+|  row-size=58B cardinality=575.77K
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: c_nationkey = n2.n_nationkey
 |  other predicates: ((n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE'))
 |  runtime filters: RF000 <- n2.n_nationkey
+|  row-size=132B cardinality=575.77K
 |
 |--05:SCAN HDFS [tpch.nation n2]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 09:HASH JOIN [INNER JOIN]
 |  hash predicates: s_nationkey = n1.n_nationkey
 |  runtime filters: RF002 <- n1.n_nationkey
+|  row-size=111B cardinality=575.77K
 |
 |--04:SCAN HDFS [tpch.nation n1]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 08:HASH JOIN [INNER JOIN]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF004 <- c_custkey
+|  row-size=90B cardinality=575.77K
 |
 |--03:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF000 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 07:HASH JOIN [INNER JOIN]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF006 <- s_suppkey
+|  row-size=80B cardinality=575.77K
 |
 |--00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF008 <- o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--02:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     runtime filters: RF004 -> o_custkey
+|     row-size=16B cardinality=1.50M
 |
 01:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate <= '1996-12-31', l_shipdate >= '1995-01-01'
    runtime filters: RF006 -> l_suppkey, RF008 -> l_orderkey
+   row-size=54B cardinality=600.12K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=86.95MB Threads=15
 Per-Host Resource Estimates: Memory=699MB
@@ -1157,65 +1329,78 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: supp_nation ASC, cust_nation ASC, l_year ASC
+|  row-size=58B cardinality=575.77K
 |
 20:AGGREGATE [FINALIZE]
 |  output: sum:merge(volume)
 |  group by: supp_nation, cust_nation, l_year
+|  row-size=58B cardinality=575.77K
 |
 19:EXCHANGE [HASH(supp_nation,cust_nation,l_year)]
 |
 11:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: n1.n_name, n2.n_name, year(l_shipdate)
+|  row-size=58B cardinality=575.77K
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = n2.n_nationkey
 |  other predicates: ((n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE'))
 |  runtime filters: RF000 <- n2.n_nationkey
+|  row-size=132B cardinality=575.77K
 |
 |--18:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch.nation n2]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n1.n_nationkey
 |  runtime filters: RF002 <- n1.n_nationkey
+|  row-size=111B cardinality=575.77K
 |
 |--17:EXCHANGE [BROADCAST]
 |  |
 |  04:SCAN HDFS [tpch.nation n1]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF004 <- c_custkey
+|  row-size=90B cardinality=575.77K
 |
 |--16:EXCHANGE [BROADCAST]
 |  |
 |  03:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF000 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 07:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF006 <- s_suppkey
+|  row-size=80B cardinality=575.77K
 |
 |--15:EXCHANGE [BROADCAST]
 |  |
 |  00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 06:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF008 <- o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--14:EXCHANGE [HASH(o_orderkey)]
 |  |
 |  02:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     runtime filters: RF004 -> o_custkey
+|     row-size=16B cardinality=1.50M
 |
 13:EXCHANGE [HASH(l_orderkey)]
 |
@@ -1223,6 +1408,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate <= '1996-12-31', l_shipdate >= '1995-01-01'
    runtime filters: RF006 -> l_suppkey, RF008 -> l_orderkey
+   row-size=54B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=144.78MB Threads=17
 Per-Host Resource Estimates: Memory=655MB
@@ -1233,21 +1419,25 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: supp_nation ASC, cust_nation ASC, l_year ASC
+|  row-size=58B cardinality=575.77K
 |
 20:AGGREGATE [FINALIZE]
 |  output: sum:merge(volume)
 |  group by: supp_nation, cust_nation, l_year
+|  row-size=58B cardinality=575.77K
 |
 19:EXCHANGE [HASH(supp_nation,cust_nation,l_year)]
 |
 11:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: n1.n_name, n2.n_name, year(l_shipdate)
+|  row-size=58B cardinality=575.77K
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = n2.n_nationkey
 |  other predicates: ((n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY') OR (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE'))
 |  runtime filters: RF000 <- n2.n_nationkey
+|  row-size=132B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -1257,10 +1447,12 @@ PLAN-ROOT SINK
 |  |
 |  05:SCAN HDFS [tpch.nation n2]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n1.n_nationkey
 |  runtime filters: RF002 <- n1.n_nationkey
+|  row-size=111B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -1270,10 +1462,12 @@ PLAN-ROOT SINK
 |  |
 |  04:SCAN HDFS [tpch.nation n1]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF004 <- c_custkey
+|  row-size=90B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=02 plan-id=03 cohort-id=01
@@ -1284,10 +1478,12 @@ PLAN-ROOT SINK
 |  03:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF000 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 07:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF006 <- s_suppkey
+|  row-size=80B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
@@ -1298,10 +1494,12 @@ PLAN-ROOT SINK
 |  00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 06:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF008 <- o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--JOIN BUILD
 |  |  join-table-id=04 plan-id=05 cohort-id=01
@@ -1312,6 +1510,7 @@ PLAN-ROOT SINK
 |  02:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     runtime filters: RF004 -> o_custkey
+|     row-size=16B cardinality=1.50M
 |
 13:EXCHANGE [HASH(l_orderkey)]
 |
@@ -1319,6 +1518,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate <= '1996-12-31', l_shipdate >= '1995-01-01'
    runtime filters: RF006 -> l_suppkey, RF008 -> l_orderkey
+   row-size=54B cardinality=600.12K
 ====
 # TPCH-Q8
 # Q8 - National Market Share Query
@@ -1366,70 +1566,87 @@ PLAN-ROOT SINK
 |
 16:SORT
 |  order by: o_year ASC
+|  row-size=36B cardinality=761
 |
 15:AGGREGATE [FINALIZE]
 |  output: sum(CASE WHEN n2.n_name = 'BRAZIL' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum(l_extendedprice * (1 - l_discount))
 |  group by: year(o_orderdate)
+|  row-size=36B cardinality=761
 |
 14:HASH JOIN [INNER JOIN]
 |  hash predicates: s_nationkey = n2.n_nationkey
 |  runtime filters: RF000 <- n2.n_nationkey
+|  row-size=184B cardinality=761
 |
 |--06:SCAN HDFS [tpch.nation n2]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 13:HASH JOIN [INNER JOIN]
 |  hash predicates: n1.n_regionkey = r_regionkey
 |  runtime filters: RF002 <- r_regionkey
+|  row-size=163B cardinality=761
 |
 |--07:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'AMERICA'
+|     row-size=21B cardinality=1
 |
 12:HASH JOIN [INNER JOIN]
 |  hash predicates: c_nationkey = n1.n_nationkey
 |  runtime filters: RF004 <- n1.n_nationkey
+|  row-size=143B cardinality=3.81K
 |
 |--05:SCAN HDFS [tpch.nation n1]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF002 -> n1.n_regionkey
+|     row-size=4B cardinality=25
 |
 11:HASH JOIN [INNER JOIN]
 |  hash predicates: c_custkey = o_custkey
 |  runtime filters: RF006 <- o_custkey
+|  row-size=139B cardinality=3.81K
 |
 |--10:HASH JOIN [INNER JOIN]
 |  |  hash predicates: l_suppkey = s_suppkey
 |  |  runtime filters: RF008 <- s_suppkey
+|  |  row-size=129B cardinality=3.81K
 |  |
 |  |--01:SCAN HDFS [tpch.supplier]
 |  |     partitions=1/1 files=1 size=1.33MB
 |  |     runtime filters: RF000 -> s_nationkey
+|  |     row-size=10B cardinality=10.00K
 |  |
 |  09:HASH JOIN [INNER JOIN]
 |  |  hash predicates: o_orderkey = l_orderkey
 |  |  runtime filters: RF010 <- l_orderkey
+|  |  row-size=119B cardinality=3.81K
 |  |
 |  |--08:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: l_partkey = p_partkey
 |  |  |  runtime filters: RF012 <- p_partkey
+|  |  |  row-size=81B cardinality=39.66K
 |  |  |
 |  |  |--00:SCAN HDFS [tpch.part]
 |  |  |     partitions=1/1 files=1 size=22.83MB
 |  |  |     predicates: p_type = 'ECONOMY ANODIZED STEEL'
+|  |  |     row-size=41B cardinality=1.32K
 |  |  |
 |  |  02:SCAN HDFS [tpch.lineitem]
 |  |     partitions=1/1 files=1 size=718.94MB
 |  |     runtime filters: RF008 -> l_suppkey, RF012 -> l_partkey
+|  |     row-size=40B cardinality=6.00M
 |  |
 |  03:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate <= '1996-12-31', o_orderdate >= '1995-01-01'
 |     runtime filters: RF010 -> o_orderkey
+|     row-size=38B cardinality=150.00K
 |
 04:SCAN HDFS [tpch.customer]
    partitions=1/1 files=1 size=23.08MB
    runtime filters: RF004 -> c_nationkey, RF006 -> c_custkey
+   row-size=10B cardinality=150.00K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=71.46MB Threads=21
 Per-Host Resource Estimates: Memory=756MB
@@ -1440,73 +1657,87 @@ PLAN-ROOT SINK
 |
 16:SORT
 |  order by: o_year ASC
+|  row-size=36B cardinality=761
 |
 28:AGGREGATE [FINALIZE]
 |  output: sum:merge(CASE WHEN nation = 'BRAZIL' THEN volume ELSE 0 END), sum:merge(volume)
 |  group by: o_year
+|  row-size=36B cardinality=761
 |
 27:EXCHANGE [HASH(o_year)]
 |
 15:AGGREGATE [STREAMING]
 |  output: sum(CASE WHEN n2.n_name = 'BRAZIL' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum(l_extendedprice * (1 - l_discount))
 |  group by: year(o_orderdate)
+|  row-size=36B cardinality=761
 |
 14:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n2.n_nationkey
 |  runtime filters: RF000 <- n2.n_nationkey
+|  row-size=184B cardinality=761
 |
 |--26:EXCHANGE [BROADCAST]
 |  |
 |  06:SCAN HDFS [tpch.nation n2]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 13:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: n1.n_regionkey = r_regionkey
 |  runtime filters: RF002 <- r_regionkey
+|  row-size=163B cardinality=761
 |
 |--25:EXCHANGE [BROADCAST]
 |  |
 |  07:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'AMERICA'
+|     row-size=21B cardinality=1
 |
 12:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = n1.n_nationkey
 |  runtime filters: RF004 <- n1.n_nationkey
+|  row-size=143B cardinality=3.81K
 |
 |--24:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch.nation n1]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF002 -> n1.n_regionkey
+|     row-size=4B cardinality=25
 |
 11:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF006 <- c_custkey
+|  row-size=139B cardinality=3.81K
 |
 |--23:EXCHANGE [HASH(c_custkey)]
 |  |
 |  04:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF004 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 22:EXCHANGE [HASH(o_custkey)]
 |
 10:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF008 <- s_suppkey
+|  row-size=129B cardinality=3.81K
 |
 |--21:EXCHANGE [HASH(s_suppkey)]
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 20:EXCHANGE [HASH(l_suppkey)]
 |
 09:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF010 <- o_orderkey
+|  row-size=119B cardinality=3.81K
 |
 |--19:EXCHANGE [HASH(o_orderkey)]
 |  |
@@ -1514,22 +1745,26 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate <= '1996-12-31', o_orderdate >= '1995-01-01'
 |     runtime filters: RF006 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 18:EXCHANGE [HASH(l_orderkey)]
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF012 <- p_partkey
+|  row-size=81B cardinality=39.66K
 |
 |--17:EXCHANGE [BROADCAST]
 |  |
 |  00:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: p_type = 'ECONOMY ANODIZED STEEL'
+|     row-size=41B cardinality=1.32K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF008 -> l_suppkey, RF010 -> l_orderkey, RF012 -> l_partkey
+   row-size=40B cardinality=6.00M
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=141.05MB Threads=25
 Per-Host Resource Estimates: Memory=724MB
@@ -1540,20 +1775,24 @@ PLAN-ROOT SINK
 |
 16:SORT
 |  order by: o_year ASC
+|  row-size=36B cardinality=761
 |
 28:AGGREGATE [FINALIZE]
 |  output: sum:merge(CASE WHEN nation = 'BRAZIL' THEN volume ELSE 0 END), sum:merge(volume)
 |  group by: o_year
+|  row-size=36B cardinality=761
 |
 27:EXCHANGE [HASH(o_year)]
 |
 15:AGGREGATE [STREAMING]
 |  output: sum(CASE WHEN n2.n_name = 'BRAZIL' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum(l_extendedprice * (1 - l_discount))
 |  group by: year(o_orderdate)
+|  row-size=36B cardinality=761
 |
 14:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n2.n_nationkey
 |  runtime filters: RF000 <- n2.n_nationkey
+|  row-size=184B cardinality=761
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -1563,10 +1802,12 @@ PLAN-ROOT SINK
 |  |
 |  06:SCAN HDFS [tpch.nation n2]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 13:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: n1.n_regionkey = r_regionkey
 |  runtime filters: RF002 <- r_regionkey
+|  row-size=163B cardinality=761
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -1577,10 +1818,12 @@ PLAN-ROOT SINK
 |  07:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: r_name = 'AMERICA'
+|     row-size=21B cardinality=1
 |
 12:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = n1.n_nationkey
 |  runtime filters: RF004 <- n1.n_nationkey
+|  row-size=143B cardinality=3.81K
 |
 |--JOIN BUILD
 |  |  join-table-id=02 plan-id=03 cohort-id=01
@@ -1591,10 +1834,12 @@ PLAN-ROOT SINK
 |  05:SCAN HDFS [tpch.nation n1]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF002 -> n1.n_regionkey
+|     row-size=4B cardinality=25
 |
 11:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF006 <- c_custkey
+|  row-size=139B cardinality=3.81K
 |
 |--JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
@@ -1605,12 +1850,14 @@ PLAN-ROOT SINK
 |  04:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF004 -> c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 22:EXCHANGE [HASH(o_custkey)]
 |
 10:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF008 <- s_suppkey
+|  row-size=129B cardinality=3.81K
 |
 |--JOIN BUILD
 |  |  join-table-id=04 plan-id=05 cohort-id=01
@@ -1621,12 +1868,14 @@ PLAN-ROOT SINK
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 20:EXCHANGE [HASH(l_suppkey)]
 |
 09:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF010 <- o_orderkey
+|  row-size=119B cardinality=3.81K
 |
 |--JOIN BUILD
 |  |  join-table-id=05 plan-id=06 cohort-id=01
@@ -1638,12 +1887,14 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate <= '1996-12-31', o_orderdate >= '1995-01-01'
 |     runtime filters: RF006 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 18:EXCHANGE [HASH(l_orderkey)]
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF012 <- p_partkey
+|  row-size=81B cardinality=39.66K
 |
 |--JOIN BUILD
 |  |  join-table-id=06 plan-id=07 cohort-id=01
@@ -1654,10 +1905,12 @@ PLAN-ROOT SINK
 |  00:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: p_type = 'ECONOMY ANODIZED STEEL'
+|     row-size=41B cardinality=1.32K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF008 -> l_suppkey, RF010 -> l_orderkey, RF012 -> l_partkey
+   row-size=40B cardinality=6.00M
 ====
 # TPCH-Q9
 # Q9 - Product Type Measure Query
@@ -1699,52 +1952,65 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: nation ASC, o_year DESC
+|  row-size=39B cardinality=61.70K
 |
 11:AGGREGATE [FINALIZE]
 |  output: sum(l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity)
 |  group by: n_name, year(o_orderdate)
+|  row-size=39B cardinality=61.70K
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=186B cardinality=574.29K
 |
 |--05:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 09:HASH JOIN [INNER JOIN]
 |  hash predicates: l_partkey = ps_partkey, l_suppkey = ps_suppkey
 |  runtime filters: RF002 <- ps_partkey, RF003 <- ps_suppkey
+|  row-size=165B cardinality=574.29K
 |
 |--03:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
+|     row-size=24B cardinality=800.00K
 |
 08:HASH JOIN [INNER JOIN]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF006 <- s_suppkey
+|  row-size=141B cardinality=574.29K
 |
 |--01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey, RF003 -> tpch.supplier.s_suppkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF008 <- o_orderkey
+|  row-size=131B cardinality=574.29K
 |
 |--04:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
+|     row-size=30B cardinality=1.50M
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF010 <- p_partkey
+|  row-size=101B cardinality=598.58K
 |
 |--00:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: p_name LIKE '%green%'
 |     runtime filters: RF002 -> tpch.part.p_partkey
+|     row-size=53B cardinality=20.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF002 -> l_partkey, RF003 -> l_suppkey, RF006 -> l_suppkey, RF008 -> l_orderkey, RF010 -> l_partkey
+   row-size=48B cardinality=6.00M
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=123.70MB Threads=15
 Per-Host Resource Estimates: Memory=879MB
@@ -1755,59 +2021,71 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: nation ASC, o_year DESC
+|  row-size=39B cardinality=61.70K
 |
 20:AGGREGATE [FINALIZE]
 |  output: sum:merge(amount)
 |  group by: nation, o_year
+|  row-size=39B cardinality=61.70K
 |
 19:EXCHANGE [HASH(nation,o_year)]
 |
 11:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity)
 |  group by: n_name, year(o_orderdate)
+|  row-size=39B cardinality=61.70K
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=186B cardinality=574.29K
 |
 |--18:EXCHANGE [BROADCAST]
 |  |
 |  05:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_partkey = ps_partkey, l_suppkey = ps_suppkey
 |  runtime filters: RF002 <- ps_partkey, RF003 <- ps_suppkey
+|  row-size=165B cardinality=574.29K
 |
 |--17:EXCHANGE [BROADCAST]
 |  |
 |  03:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
+|     row-size=24B cardinality=800.00K
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF006 <- s_suppkey
+|  row-size=141B cardinality=574.29K
 |
 |--16:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey, RF003 -> tpch.supplier.s_suppkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF008 <- o_orderkey
+|  row-size=131B cardinality=574.29K
 |
 |--15:EXCHANGE [HASH(o_orderkey)]
 |  |
 |  04:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
+|     row-size=30B cardinality=1.50M
 |
 14:EXCHANGE [HASH(l_orderkey)]
 |
 06:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF010 <- p_partkey
+|  row-size=101B cardinality=598.58K
 |
 |--13:EXCHANGE [BROADCAST]
 |  |
@@ -1815,10 +2093,12 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: p_name LIKE '%green%'
 |     runtime filters: RF002 -> tpch.part.p_partkey
+|     row-size=53B cardinality=20.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF002 -> l_partkey, RF003 -> l_suppkey, RF006 -> l_suppkey, RF008 -> l_orderkey, RF010 -> l_partkey
+   row-size=48B cardinality=6.00M
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=230.39MB Threads=17
 Per-Host Resource Estimates: Memory=867MB
@@ -1829,20 +2109,24 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: nation ASC, o_year DESC
+|  row-size=39B cardinality=61.70K
 |
 20:AGGREGATE [FINALIZE]
 |  output: sum:merge(amount)
 |  group by: nation, o_year
+|  row-size=39B cardinality=61.70K
 |
 19:EXCHANGE [HASH(nation,o_year)]
 |
 11:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity)
 |  group by: n_name, year(o_orderdate)
+|  row-size=39B cardinality=61.70K
 |
 10:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=186B cardinality=574.29K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -1852,10 +2136,12 @@ PLAN-ROOT SINK
 |  |
 |  05:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 09:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_partkey = ps_partkey, l_suppkey = ps_suppkey
 |  runtime filters: RF002 <- ps_partkey, RF003 <- ps_suppkey
+|  row-size=165B cardinality=574.29K
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -1865,10 +2151,12 @@ PLAN-ROOT SINK
 |  |
 |  03:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
+|     row-size=24B cardinality=800.00K
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF006 <- s_suppkey
+|  row-size=141B cardinality=574.29K
 |
 |--JOIN BUILD
 |  |  join-table-id=02 plan-id=03 cohort-id=01
@@ -1879,10 +2167,12 @@ PLAN-ROOT SINK
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey, RF003 -> tpch.supplier.s_suppkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF008 <- o_orderkey
+|  row-size=131B cardinality=574.29K
 |
 |--JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
@@ -1892,12 +2182,14 @@ PLAN-ROOT SINK
 |  |
 |  04:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
+|     row-size=30B cardinality=1.50M
 |
 14:EXCHANGE [HASH(l_orderkey)]
 |
 06:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF010 <- p_partkey
+|  row-size=101B cardinality=598.58K
 |
 |--JOIN BUILD
 |  |  join-table-id=04 plan-id=05 cohort-id=01
@@ -1909,10 +2201,12 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: p_name LIKE '%green%'
 |     runtime filters: RF002 -> tpch.part.p_partkey
+|     row-size=53B cardinality=20.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF002 -> l_partkey, RF003 -> l_suppkey, RF006 -> l_suppkey, RF008 -> l_orderkey, RF010 -> l_partkey
+   row-size=48B cardinality=6.00M
 ====
 # TPCH-Q10
 # Q10 - Returned Item Reporting Query
@@ -1956,38 +2250,47 @@ PLAN-ROOT SINK
 |
 08:TOP-N [LIMIT=20]
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC
+|  row-size=230B cardinality=20
 |
 07:AGGREGATE [FINALIZE]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
+|  row-size=230B cardinality=191.92K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: c_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=293B cardinality=191.92K
 |
 |--03:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 05:HASH JOIN [INNER JOIN]
 |  hash predicates: c_custkey = o_custkey
 |  runtime filters: RF002 <- o_custkey
+|  row-size=272B cardinality=191.92K
 |
 |--04:HASH JOIN [INNER JOIN]
 |  |  hash predicates: l_orderkey = o_orderkey
 |  |  runtime filters: RF004 <- o_orderkey
+|  |  row-size=75B cardinality=191.92K
 |  |
 |  |--01:SCAN HDFS [tpch.orders]
 |  |     partitions=1/1 files=1 size=162.56MB
 |  |     predicates: o_orderdate < '1994-01-01', o_orderdate >= '1993-10-01'
+|  |     row-size=38B cardinality=150.00K
 |  |
 |  02:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: l_returnflag = 'R'
 |     runtime filters: RF004 -> l_orderkey
+|     row-size=37B cardinality=2.00M
 |
 00:SCAN HDFS [tpch.customer]
    partitions=1/1 files=1 size=23.08MB
    runtime filters: RF000 -> c_nationkey, RF002 -> c_custkey
+   row-size=197B cardinality=150.00K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=124.45MB Threads=11
 Per-Host Resource Estimates: Memory=668MB
@@ -1999,41 +2302,49 @@ PLAN-ROOT SINK
 |
 08:TOP-N [LIMIT=20]
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC
+|  row-size=230B cardinality=20
 |
 14:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
+|  row-size=230B cardinality=191.92K
 |
 13:EXCHANGE [HASH(c_custkey,c_name,c_acctbal,c_phone,n_name,c_address,c_comment)]
 |
 07:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
+|  row-size=230B cardinality=191.92K
 |
 06:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=293B cardinality=191.92K
 |
 |--12:EXCHANGE [BROADCAST]
 |  |
 |  03:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF002 <- c_custkey
+|  row-size=272B cardinality=191.92K
 |
 |--11:EXCHANGE [HASH(c_custkey)]
 |  |
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF000 -> c_nationkey
+|     row-size=197B cardinality=150.00K
 |
 10:EXCHANGE [HASH(o_custkey)]
 |
 04:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF004 <- o_orderkey
+|  row-size=75B cardinality=191.92K
 |
 |--09:EXCHANGE [BROADCAST]
 |  |
@@ -2041,11 +2352,13 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1994-01-01', o_orderdate >= '1993-10-01'
 |     runtime filters: RF002 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_returnflag = 'R'
    runtime filters: RF004 -> l_orderkey
+   row-size=37B cardinality=2.00M
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=163.89MB Threads=13
 Per-Host Resource Estimates: Memory=607MB
@@ -2057,20 +2370,24 @@ PLAN-ROOT SINK
 |
 08:TOP-N [LIMIT=20]
 |  order by: sum(l_extendedprice * (1 - l_discount)) DESC
+|  row-size=230B cardinality=20
 |
 14:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
+|  row-size=230B cardinality=191.92K
 |
 13:EXCHANGE [HASH(c_custkey,c_name,c_acctbal,c_phone,n_name,c_address,c_comment)]
 |
 07:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: c_custkey, c_name, c_acctbal, c_phone, n_name, c_address, c_comment
+|  row-size=230B cardinality=191.92K
 |
 06:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: c_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=293B cardinality=191.92K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -2080,10 +2397,12 @@ PLAN-ROOT SINK
 |  |
 |  03:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF002 <- c_custkey
+|  row-size=272B cardinality=191.92K
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -2094,12 +2413,14 @@ PLAN-ROOT SINK
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF000 -> c_nationkey
+|     row-size=197B cardinality=150.00K
 |
 10:EXCHANGE [HASH(o_custkey)]
 |
 04:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF004 <- o_orderkey
+|  row-size=75B cardinality=191.92K
 |
 |--JOIN BUILD
 |  |  join-table-id=02 plan-id=03 cohort-id=01
@@ -2111,11 +2432,13 @@ PLAN-ROOT SINK
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: o_orderdate < '1994-01-01', o_orderdate >= '1993-10-01'
 |     runtime filters: RF002 -> o_custkey
+|     row-size=38B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_returnflag = 'R'
    runtime filters: RF004 -> l_orderkey
+   row-size=37B cardinality=2.00M
 ====
 # TPCH-Q11
 # Q11 - Important Stock Identification
@@ -2159,56 +2482,70 @@ PLAN-ROOT SINK
 |
 13:SORT
 |  order by: value DESC
+|  row-size=24B cardinality=32.00K
 |
 12:NESTED LOOP JOIN [INNER JOIN]
 |  predicates: sum(ps_supplycost * ps_availqty) > sum(ps_supplycost * ps_availqty) * 0.0001
+|  row-size=40B cardinality=32.00K
 |
 |--11:AGGREGATE [FINALIZE]
 |  |  output: sum(ps_supplycost * ps_availqty)
+|  |  row-size=16B cardinality=1
 |  |
 |  10:HASH JOIN [INNER JOIN]
 |  |  hash predicates: s_nationkey = n_nationkey
 |  |  runtime filters: RF004 <- n_nationkey
+|  |  row-size=51B cardinality=32.00K
 |  |
 |  |--08:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     predicates: n_name = 'GERMANY'
+|  |     row-size=21B cardinality=1
 |  |
 |  09:HASH JOIN [INNER JOIN]
 |  |  hash predicates: ps_suppkey = s_suppkey
 |  |  runtime filters: RF006 <- s_suppkey
+|  |  row-size=30B cardinality=800.00K
 |  |
 |  |--07:SCAN HDFS [tpch.supplier]
 |  |     partitions=1/1 files=1 size=1.33MB
 |  |     runtime filters: RF004 -> s_nationkey
+|  |     row-size=10B cardinality=10.00K
 |  |
 |  06:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
 |     runtime filters: RF006 -> ps_suppkey
+|     row-size=20B cardinality=800.00K
 |
 05:AGGREGATE [FINALIZE]
 |  output: sum(ps_supplycost * ps_availqty)
 |  group by: ps_partkey
+|  row-size=24B cardinality=32.00K
 |
 04:HASH JOIN [INNER JOIN]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=59B cardinality=32.00K
 |
 |--02:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     predicates: n_name = 'GERMANY'
+|     row-size=21B cardinality=1
 |
 03:HASH JOIN [INNER JOIN]
 |  hash predicates: ps_suppkey = s_suppkey
 |  runtime filters: RF002 <- s_suppkey
+|  row-size=38B cardinality=800.00K
 |
 |--01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 00:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF002 -> ps_suppkey
+   row-size=28B cardinality=800.00K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=43.70MB Threads=15
 Per-Host Resource Estimates: Memory=541MB
@@ -2219,77 +2556,93 @@ PLAN-ROOT SINK
 |
 13:SORT
 |  order by: value DESC
+|  row-size=24B cardinality=32.00K
 |
 12:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
 |  predicates: sum(ps_supplycost * ps_availqty) > sum(ps_supplycost * ps_availqty) * 0.0001
+|  row-size=40B cardinality=32.00K
 |
 |--22:EXCHANGE [BROADCAST]
 |  |
 |  21:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ps_supplycost * ps_availqty)
+|  |  row-size=16B cardinality=1
 |  |
 |  20:EXCHANGE [UNPARTITIONED]
 |  |
 |  11:AGGREGATE
 |  |  output: sum(ps_supplycost * ps_availqty)
+|  |  row-size=16B cardinality=1
 |  |
 |  10:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: s_nationkey = n_nationkey
 |  |  runtime filters: RF004 <- n_nationkey
+|  |  row-size=51B cardinality=32.00K
 |  |
 |  |--19:EXCHANGE [BROADCAST]
 |  |  |
 |  |  08:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     predicates: n_name = 'GERMANY'
+|  |     row-size=21B cardinality=1
 |  |
 |  09:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: ps_suppkey = s_suppkey
 |  |  runtime filters: RF006 <- s_suppkey
+|  |  row-size=30B cardinality=800.00K
 |  |
 |  |--18:EXCHANGE [BROADCAST]
 |  |  |
 |  |  07:SCAN HDFS [tpch.supplier]
 |  |     partitions=1/1 files=1 size=1.33MB
 |  |     runtime filters: RF004 -> s_nationkey
+|  |     row-size=10B cardinality=10.00K
 |  |
 |  06:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
 |     runtime filters: RF006 -> ps_suppkey
+|     row-size=20B cardinality=800.00K
 |
 17:AGGREGATE [FINALIZE]
 |  output: sum:merge(ps_supplycost * ps_availqty)
 |  group by: ps_partkey
+|  row-size=24B cardinality=32.00K
 |
 16:EXCHANGE [HASH(ps_partkey)]
 |
 05:AGGREGATE [STREAMING]
 |  output: sum(ps_supplycost * ps_availqty)
 |  group by: ps_partkey
+|  row-size=24B cardinality=32.00K
 |
 04:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=59B cardinality=32.00K
 |
 |--15:EXCHANGE [BROADCAST]
 |  |
 |  02:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     predicates: n_name = 'GERMANY'
+|     row-size=21B cardinality=1
 |
 03:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: ps_suppkey = s_suppkey
 |  runtime filters: RF002 <- s_suppkey
+|  row-size=38B cardinality=800.00K
 |
 |--14:EXCHANGE [BROADCAST]
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 00:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF002 -> ps_suppkey
+   row-size=28B cardinality=800.00K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=87.41MB Threads=16
 Per-Host Resource Estimates: Memory=590MB
@@ -2300,10 +2653,12 @@ PLAN-ROOT SINK
 |
 13:SORT
 |  order by: value DESC
+|  row-size=24B cardinality=32.00K
 |
 12:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
 |  join table id: 00
 |  predicates: sum(ps_supplycost * ps_availqty) > sum(ps_supplycost * ps_availqty) * 0.0001
+|  row-size=40B cardinality=32.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -2312,15 +2667,18 @@ PLAN-ROOT SINK
 |  |
 |  21:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ps_supplycost * ps_availqty)
+|  |  row-size=16B cardinality=1
 |  |
 |  20:EXCHANGE [UNPARTITIONED]
 |  |
 |  11:AGGREGATE
 |  |  output: sum(ps_supplycost * ps_availqty)
+|  |  row-size=16B cardinality=1
 |  |
 |  10:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: s_nationkey = n_nationkey
 |  |  runtime filters: RF004 <- n_nationkey
+|  |  row-size=51B cardinality=32.00K
 |  |
 |  |--JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=02
@@ -2331,10 +2689,12 @@ PLAN-ROOT SINK
 |  |  08:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     predicates: n_name = 'GERMANY'
+|  |     row-size=21B cardinality=1
 |  |
 |  09:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash predicates: ps_suppkey = s_suppkey
 |  |  runtime filters: RF006 <- s_suppkey
+|  |  row-size=30B cardinality=800.00K
 |  |
 |  |--JOIN BUILD
 |  |  |  join-table-id=02 plan-id=03 cohort-id=02
@@ -2345,24 +2705,29 @@ PLAN-ROOT SINK
 |  |  07:SCAN HDFS [tpch.supplier]
 |  |     partitions=1/1 files=1 size=1.33MB
 |  |     runtime filters: RF004 -> s_nationkey
+|  |     row-size=10B cardinality=10.00K
 |  |
 |  06:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
 |     runtime filters: RF006 -> ps_suppkey
+|     row-size=20B cardinality=800.00K
 |
 17:AGGREGATE [FINALIZE]
 |  output: sum:merge(ps_supplycost * ps_availqty)
 |  group by: ps_partkey
+|  row-size=24B cardinality=32.00K
 |
 16:EXCHANGE [HASH(ps_partkey)]
 |
 05:AGGREGATE [STREAMING]
 |  output: sum(ps_supplycost * ps_availqty)
 |  group by: ps_partkey
+|  row-size=24B cardinality=32.00K
 |
 04:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: s_nationkey = n_nationkey
 |  runtime filters: RF000 <- n_nationkey
+|  row-size=59B cardinality=32.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=03 plan-id=04 cohort-id=01
@@ -2373,10 +2738,12 @@ PLAN-ROOT SINK
 |  02:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     predicates: n_name = 'GERMANY'
+|     row-size=21B cardinality=1
 |
 03:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash predicates: ps_suppkey = s_suppkey
 |  runtime filters: RF002 <- s_suppkey
+|  row-size=38B cardinality=800.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=04 plan-id=05 cohort-id=01
@@ -2387,10 +2754,12 @@ PLAN-ROOT SINK
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 00:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF002 -> ps_suppkey
+   row-size=28B cardinality=800.00K
 ====
 # TPCH-Q12
 # Q12 - Shipping Mode and Order Priority Query
@@ -2429,22 +2798,27 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: l_shipmode ASC
+|  row-size=32B cardinality=7
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum(CASE WHEN o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum(CASE WHEN o_orderpriority != '1-URGENT' AND o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END)
 |  group by: l_shipmode
+|  row-size=32B cardinality=7
 |
 02:HASH JOIN [INNER JOIN]
 |  hash predicates: o_orderkey = l_orderkey
 |  runtime filters: RF000 <- l_orderkey
+|  row-size=119B cardinality=320.78K
 |
 |--01:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: l_shipmode IN ('MAIL', 'SHIP'), l_commitdate < l_receiptdate, l_receiptdate < '1995-01-01', l_receiptdate >= '1994-01-01', l_shipdate < l_commitdate
+|     row-size=90B cardinality=320.78K
 |
 00:SCAN HDFS [tpch.orders]
    partitions=1/1 files=1 size=162.56MB
    runtime filters: RF000 -> o_orderkey
+   row-size=28B cardinality=1.50M
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=67.94MB Threads=7
 Per-Host Resource Estimates: Memory=528MB
@@ -2455,25 +2829,30 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: l_shipmode ASC
+|  row-size=32B cardinality=7
 |
 08:AGGREGATE [FINALIZE]
 |  output: sum:merge(CASE WHEN o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum:merge(CASE WHEN o_orderpriority != '1-URGENT' AND o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END)
 |  group by: l_shipmode
+|  row-size=32B cardinality=7
 |
 07:EXCHANGE [HASH(l_shipmode)]
 |
 03:AGGREGATE [STREAMING]
 |  output: sum(CASE WHEN o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum(CASE WHEN o_orderpriority != '1-URGENT' AND o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END)
 |  group by: l_shipmode
+|  row-size=32B cardinality=7
 |
 02:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF000 <- o_orderkey
+|  row-size=119B cardinality=320.78K
 |
 |--06:EXCHANGE [HASH(o_orderkey)]
 |  |
 |  00:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
+|     row-size=28B cardinality=1.50M
 |
 05:EXCHANGE [HASH(l_orderkey)]
 |
@@ -2481,6 +2860,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipmode IN ('MAIL', 'SHIP'), l_commitdate < l_receiptdate, l_receiptdate < '1995-01-01', l_receiptdate >= '1994-01-01', l_shipdate < l_commitdate
    runtime filters: RF000 -> l_orderkey
+   row-size=90B cardinality=320.78K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=101.88MB Threads=9
 Per-Host Resource Estimates: Memory=474MB
@@ -2491,20 +2871,24 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: l_shipmode ASC
+|  row-size=32B cardinality=7
 |
 08:AGGREGATE [FINALIZE]
 |  output: sum:merge(CASE WHEN o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum:merge(CASE WHEN o_orderpriority != '1-URGENT' AND o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END)
 |  group by: l_shipmode
+|  row-size=32B cardinality=7
 |
 07:EXCHANGE [HASH(l_shipmode)]
 |
 03:AGGREGATE [STREAMING]
 |  output: sum(CASE WHEN o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum(CASE WHEN o_orderpriority != '1-URGENT' AND o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END)
 |  group by: l_shipmode
+|  row-size=32B cardinality=7
 |
 02:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_orderkey = o_orderkey
 |  runtime filters: RF000 <- o_orderkey
+|  row-size=119B cardinality=320.78K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -2514,6 +2898,7 @@ PLAN-ROOT SINK
 |  |
 |  00:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
+|     row-size=28B cardinality=1.50M
 |
 05:EXCHANGE [HASH(l_orderkey)]
 |
@@ -2521,6 +2906,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipmode IN ('MAIL', 'SHIP'), l_commitdate < l_receiptdate, l_receiptdate < '1995-01-01', l_receiptdate >= '1994-01-01', l_shipdate < l_commitdate
    runtime filters: RF000 -> l_orderkey
+   row-size=90B cardinality=320.78K
 ====
 # TPCH-Q13
 # Q13 - Customer Distribution Query
@@ -2551,26 +2937,32 @@ PLAN-ROOT SINK
 |
 05:SORT
 |  order by: count(*) DESC, c_count DESC
+|  row-size=16B cardinality=150.00K
 |
 04:AGGREGATE [FINALIZE]
 |  output: count(*)
 |  group by: count(o_orderkey)
+|  row-size=16B cardinality=150.00K
 |
 03:AGGREGATE [FINALIZE]
 |  output: count(o_orderkey)
 |  group by: c_custkey
+|  row-size=16B cardinality=150.00K
 |
 02:HASH JOIN [RIGHT OUTER JOIN]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF000 <- c_custkey
+|  row-size=85B cardinality=150.00K
 |
 |--00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
+|     row-size=8B cardinality=150.00K
 |
 01:SCAN HDFS [tpch.orders]
    partitions=1/1 files=1 size=162.56MB
    predicates: NOT o_comment LIKE '%special%requests%'
    runtime filters: RF000 -> o_custkey
+   row-size=77B cardinality=150.00K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=41.38MB Threads=7
 Per-Host Resource Estimates: Memory=289MB
@@ -2581,29 +2973,35 @@ PLAN-ROOT SINK
 |
 05:SORT
 |  order by: count(*) DESC, c_count DESC
+|  row-size=16B cardinality=150.00K
 |
 09:AGGREGATE [FINALIZE]
 |  output: count:merge(*)
 |  group by: c_count
+|  row-size=16B cardinality=150.00K
 |
 08:EXCHANGE [HASH(c_count)]
 |
 04:AGGREGATE [STREAMING]
 |  output: count(*)
 |  group by: count(o_orderkey)
+|  row-size=16B cardinality=150.00K
 |
 03:AGGREGATE [FINALIZE]
 |  output: count(o_orderkey)
 |  group by: c_custkey
+|  row-size=16B cardinality=150.00K
 |
 02:HASH JOIN [RIGHT OUTER JOIN, PARTITIONED]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF000 <- c_custkey
+|  row-size=85B cardinality=150.00K
 |
 |--07:EXCHANGE [HASH(c_custkey)]
 |  |
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
+|     row-size=8B cardinality=150.00K
 |
 06:EXCHANGE [HASH(o_custkey)]
 |
@@ -2611,6 +3009,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=162.56MB
    predicates: NOT o_comment LIKE '%special%requests%'
    runtime filters: RF000 -> o_custkey
+   row-size=77B cardinality=150.00K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=69.38MB Threads=9
 Per-Host Resource Estimates: Memory=334MB
@@ -2621,24 +3020,29 @@ PLAN-ROOT SINK
 |
 05:SORT
 |  order by: count(*) DESC, c_count DESC
+|  row-size=16B cardinality=150.00K
 |
 09:AGGREGATE [FINALIZE]
 |  output: count:merge(*)
 |  group by: c_count
+|  row-size=16B cardinality=150.00K
 |
 08:EXCHANGE [HASH(c_count)]
 |
 04:AGGREGATE [STREAMING]
 |  output: count(*)
 |  group by: count(o_orderkey)
+|  row-size=16B cardinality=150.00K
 |
 03:AGGREGATE [FINALIZE]
 |  output: count(o_orderkey)
 |  group by: c_custkey
+|  row-size=16B cardinality=150.00K
 |
 02:HASH JOIN [RIGHT OUTER JOIN, PARTITIONED]
 |  hash predicates: o_custkey = c_custkey
 |  runtime filters: RF000 <- c_custkey
+|  row-size=85B cardinality=150.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -2648,6 +3052,7 @@ PLAN-ROOT SINK
 |  |
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
+|     row-size=8B cardinality=150.00K
 |
 06:EXCHANGE [HASH(o_custkey)]
 |
@@ -2655,6 +3060,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=162.56MB
    predicates: NOT o_comment LIKE '%special%requests%'
    runtime filters: RF000 -> o_custkey
+   row-size=77B cardinality=150.00K
 ====
 # TPCH-Q14
 # Q14 - Promotion Effect
@@ -2678,18 +3084,22 @@ PLAN-ROOT SINK
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum(CASE WHEN p_type LIKE 'PROMO%' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum(l_extendedprice * (1 - l_discount))
+|  row-size=32B cardinality=1
 |
 02:HASH JOIN [INNER JOIN]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF000 <- p_partkey
+|  row-size=87B cardinality=598.58K
 |
 |--01:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
+|     row-size=41B cardinality=200.00K
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate < '1995-10-01', l_shipdate >= '1995-09-01'
    runtime filters: RF000 -> l_partkey
+   row-size=46B cardinality=600.12K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=22.75MB Threads=6
 Per-Host Resource Estimates: Memory=364MB
@@ -2697,20 +3107,24 @@ PLAN-ROOT SINK
 |
 07:AGGREGATE [FINALIZE]
 |  output: sum:merge(CASE WHEN p_type LIKE 'PROMO%' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum:merge(l_extendedprice * (1 - l_discount))
+|  row-size=32B cardinality=1
 |
 06:EXCHANGE [UNPARTITIONED]
 |
 03:AGGREGATE
 |  output: sum(CASE WHEN p_type LIKE 'PROMO%' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum(l_extendedprice * (1 - l_discount))
+|  row-size=32B cardinality=1
 |
 02:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF000 <- p_partkey
+|  row-size=87B cardinality=598.58K
 |
 |--05:EXCHANGE [HASH(p_partkey)]
 |  |
 |  01:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
+|     row-size=41B cardinality=200.00K
 |
 04:EXCHANGE [HASH(l_partkey)]
 |
@@ -2718,6 +3132,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate < '1995-10-01', l_shipdate >= '1995-09-01'
    runtime filters: RF000 -> l_partkey
+   row-size=46B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=41.75MB Threads=7
 Per-Host Resource Estimates: Memory=298MB
@@ -2725,15 +3140,18 @@ PLAN-ROOT SINK
 |
 07:AGGREGATE [FINALIZE]
 |  output: sum:merge(CASE WHEN p_type LIKE 'PROMO%' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum:merge(l_extendedprice * (1 - l_discount))
+|  row-size=32B cardinality=1
 |
 06:EXCHANGE [UNPARTITIONED]
 |
 03:AGGREGATE
 |  output: sum(CASE WHEN p_type LIKE 'PROMO%' THEN l_extendedprice * (1 - l_discount) ELSE 0 END), sum(l_extendedprice * (1 - l_discount))
+|  row-size=32B cardinality=1
 |
 02:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_partkey = p_partkey
 |  runtime filters: RF000 <- p_partkey
+|  row-size=87B cardinality=598.58K
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -2743,6 +3161,7 @@ PLAN-ROOT SINK
 |  |
 |  01:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
+|     row-size=41B cardinality=200.00K
 |
 04:EXCHANGE [HASH(l_partkey)]
 |
@@ -2750,6 +3169,7 @@ PLAN-ROOT SINK
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate < '1995-10-01', l_shipdate >= '1995-09-01'
    runtime filters: RF000 -> l_partkey
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q15
 # Q15 - Top Supplier Query
@@ -2790,36 +3210,45 @@ PLAN-ROOT SINK
 |
 08:SORT
 |  order by: s_suppkey ASC
+|  row-size=118B cardinality=1
 |
 07:HASH JOIN [LEFT SEMI JOIN]
 |  hash predicates: sum(l_extendedprice * (1 - l_discount)) = max(total_revenue)
+|  row-size=126B cardinality=1
 |
 |--05:AGGREGATE [FINALIZE]
 |  |  output: max(sum(l_extendedprice * (1 - l_discount)))
+|  |  row-size=16B cardinality=1
 |  |
 |  04:AGGREGATE [FINALIZE]
 |  |  output: sum(l_extendedprice * (1 - l_discount))
 |  |  group by: l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  03:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
+|     row-size=46B cardinality=600.12K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: s_suppkey = l_suppkey
 |  runtime filters: RF000 <- l_suppkey
+|  row-size=126B cardinality=10.00K
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: sum(l_extendedprice * (1 - l_discount))
 |  |  group by: l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  01:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
+|     row-size=46B cardinality=600.12K
 |
 00:SCAN HDFS [tpch.supplier]
    partitions=1/1 files=1 size=1.33MB
    runtime filters: RF000 -> s_suppkey
+   row-size=102B cardinality=10.00K
 ---- DISTRIBUTEDPLAN
 Max Per-Host Resource Reservation: Memory=43.75MB Threads=10
 Per-Host Resource Estimates: Memory=638MB
@@ -2830,57 +3259,69 @@ PLAN-ROOT SINK
 |
 08:SORT
 |  order by: s_suppkey ASC
+|  row-size=118B cardinality=1
 |
 07:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
 |  hash predicates: sum(l_extendedprice * (1 - l_discount)) = max(total_revenue)
+|  row-size=126B cardinality=1
 |
 |--16:EXCHANGE [BROADCAST]
 |  |
 |  15:AGGREGATE [FINALIZE]
 |  |  output: max:merge(total_revenue)
+|  |  row-size=16B cardinality=1
 |  |
 |  14:EXCHANGE [UNPARTITIONED]
 |  |
 |  05:AGGREGATE
 |  |  output: max(sum(l_extendedprice * (1 - l_discount)))
+|  |  row-size=16B cardinality=1
 |  |
 |  13:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  |  group by: l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  12:EXCHANGE [HASH(l_suppkey)]
 |  |
 |  04:AGGREGATE [STREAMING]
 |  |  output: sum(l_extendedprice * (1 - l_discount))
 |  |  group by: l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  03:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
+|     row-size=46B cardinality=600.12K
 |
 06:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF000 <- s_suppkey
+|  row-size=126B cardinality=10.00K
 |
 |--11:EXCHANGE [HASH(s_suppkey)]
 |  |
 |  00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
+|     row-size=102B cardinality=10.00K
 |
 10:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: l_suppkey
+|  row-size=24B cardinality=9.71K
 |
 09:EXCHANGE [HASH(l_suppkey)]
 |
 02:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: l_suppkey
+|  row-size=24B cardinality=9.71K
 |
 01:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
    runtime filters: RF000 -> tpch.lineitem.l_suppkey
+   row-size=46B cardinality=600.12K
 ---- PARALLELPLANS
 Max Per-Host Resource Reservation: Memory=87.50MB Threads=12
 Per-Host Resource Estimates: Memory=530MB
@@ -2891,9 +3332,11 @@ PLAN-ROOT SINK
 |
 08:SORT
 |  order by: s_suppkey ASC
+|  row-size=118B cardinality=1
 |
 07:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
 |  hash predicates: sum(l_extendedprice * (1 - l_discount)) = max(total_revenue)
+|  row-size=126B cardinality=1
 |
 |--JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
@@ -2903,29 +3346,35 @@ PLAN-ROOT SINK
 |  |
 |  15:AGGREGATE [FINALIZE]
 |  |  output: max:merge(total_revenue)
+|  |  row-size=16B cardinality=1
 |  |
 |  14:EXCHANGE [UNPARTITIONED]
 |  |
 |  05:AGGREGATE
 |  |  output: max(sum(l_extendedprice * (1 - l_discount)))
+|  |  row-size=16B cardinality=1
 |  |
 |  13:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  |  group by: l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  12:EXCHANGE [HASH(l_suppkey)]
 |  |
 |  04:AGGREGATE [STREAMING]
 |  |  output: sum(l_extendedprice * (1 - l_discount))
 |  |  group by: l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  03:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
+|     row-size=46B cardinality=600.12K
 |
 06:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash predicates: l_suppkey = s_suppkey
 |  runtime filters: RF000 <- s_suppkey
+|  row-size=126B cardinality=10.00K
 |
 |--JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
@@ -2935,21 +3384,25 @@ PLAN-ROOT SINK
 |  |
 |  00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
+|     row-size=102B cardinality=10.00K
 |
 10:AGGREGATE [FINALIZE]
 |  output: sum:merge(l_extendedprice * (1 - l_discount))
 |  group by: l_suppkey
+|  row-size=24B cardinality=9.71K
 |
 09:EXCHANGE [HASH(l_suppkey)]
 |
 02:AGGREGATE [STREAMING]
 |  output: sum(l_extendedprice * (1 - l_discount))
 |  group by: l_suppkey
+|  row-size=24B cardinality=9.71K
 |
 01:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: l_shipdate < '1996-04-01', l_shipdate >= '1996-01-01'
    runtime filters: RF000 -> tpch.lineitem.l_suppkey
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q16
 # Q16 - Parts/Su

<TRUNCATED>