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:03 UTC

[04/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-views.test
----------------------------------------------------------------------
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpch-views.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpch-views.test
index 7bc22c3..6a62e3d 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpch-views.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/tpch-views.test
@@ -26,14 +26,17 @@ PLAN-ROOT SINK
 |
 02:SORT
 |  order by: l_returnflag ASC, l_linestatus ASC
+|  row-size=122B cardinality=6
 |
 01:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_quantity), sum(tpch.lineitem.l_extendedprice), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) * (1 + tpch.lineitem.l_tax)), avg(tpch.lineitem.l_quantity), avg(tpch.lineitem.l_extendedprice), avg(tpch.lineitem.l_discount), count(*)
 |  group by: tpch.lineitem.l_returnflag, tpch.lineitem.l_linestatus
+|  row-size=122B cardinality=6
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_shipdate <= '1998-09-02'
+   row-size=80B cardinality=600.12K
 ====
 # TPCH-Q2
 # Q2 - Minimum Cost Supplier Query
@@ -86,78 +89,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 = tpch.part.p_partkey, min(ps_supplycost) = tpch.partsupp.ps_supplycost
 |  runtime filters: RF000 <- tpch.part.p_partkey
+|  row-size=325B cardinality=1.01K
 |
 |--16:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey
 |  |  runtime filters: RF010 <- tpch.region.r_regionkey
+|  |  row-size=325B cardinality=1.01K
 |  |
 |  |--04:SCAN HDFS [tpch.region]
 |  |     partitions=1/1 files=1 size=384B
 |  |     predicates: tpch.region.r_name = 'EUROPE'
+|  |     row-size=21B cardinality=1
 |  |
 |  15:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  |  runtime filters: RF012 <- tpch.nation.n_nationkey
+|  |  row-size=304B cardinality=5.05K
 |  |
 |  |--03:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     runtime filters: RF010 -> tpch.nation.n_regionkey
+|  |     row-size=23B cardinality=25
 |  |
 |  14:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.supplier.s_suppkey = tpch.partsupp.ps_suppkey
 |  |  runtime filters: RF014 <- tpch.partsupp.ps_suppkey
+|  |  row-size=281B cardinality=5.05K
 |  |
 |  |--13:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: tpch.partsupp.ps_partkey = tpch.part.p_partkey
 |  |  |  runtime filters: RF016 <- tpch.part.p_partkey
+|  |  |  row-size=95B cardinality=5.05K
 |  |  |
 |  |  |--00:SCAN HDFS [tpch.part]
 |  |  |     partitions=1/1 files=1 size=22.83MB
 |  |  |     predicates: tpch.part.p_size = 15, tpch.part.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 -> tpch.partsupp.ps_partkey
+|  |     row-size=24B cardinality=800.00K
 |  |
 |  01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF012 -> tpch.supplier.s_nationkey, RF014 -> tpch.supplier.s_suppkey
+|     row-size=187B cardinality=10.00K
 |
 12:AGGREGATE [FINALIZE]
 |  output: min(tpch.partsupp.ps_supplycost)
 |  group by: tpch.partsupp.ps_partkey
+|  row-size=16B cardinality=160.00K
 |
 11:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey
 |  runtime filters: RF004 <- tpch.region.r_regionkey
+|  row-size=59B cardinality=160.00K
 |
 |--08:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: tpch.region.r_name = 'EUROPE'
+|     row-size=21B cardinality=1
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF006 <- tpch.nation.n_nationkey
+|  row-size=38B cardinality=800.00K
 |
 |--07:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF004 -> tpch.nation.n_regionkey
+|     row-size=4B cardinality=25
 |
 09:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey
 |  runtime filters: RF008 <- tpch.supplier.s_suppkey
+|  row-size=34B cardinality=800.00K
 |
 |--06:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF006 -> tpch.supplier.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 -> tpch.partsupp.ps_suppkey
+   row-size=24B cardinality=800.00K
 ====
 # TPCH-Q3
 # Q3 - Shipping Priority Query
@@ -189,32 +211,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(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  group by: tpch.lineitem.l_orderkey, tpch.orders.o_orderdate, tpch.orders.o_shippriority
+|  row-size=50B cardinality=17.56K
 |
 04:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey
 |  runtime filters: RF000 <- tpch.customer.c_custkey
+|  row-size=117B cardinality=17.56K
 |
 |--00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     predicates: tpch.customer.c_mktsegment = 'BUILDING'
+|     row-size=29B cardinality=30.00K
 |
 03:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  runtime filters: RF002 <- tpch.orders.o_orderkey
+|  row-size=88B cardinality=57.58K
 |
 |--01:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: tpch.orders.o_orderdate < '1995-03-15'
 |     runtime filters: RF000 -> tpch.orders.o_custkey
+|     row-size=42B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_shipdate > '1995-03-15'
    runtime filters: RF002 -> tpch.lineitem.l_orderkey
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q4
 # Q4 - Order Priority Checking Query
@@ -244,23 +273,28 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: o_orderpriority ASC
+|  row-size=28B cardinality=5
 |
 03:AGGREGATE [FINALIZE]
 |  output: count(*)
 |  group by: tpch.orders.o_orderpriority
+|  row-size=28B cardinality=5
 |
 02:HASH JOIN [RIGHT SEMI JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  runtime filters: RF000 <- tpch.orders.o_orderkey
+|  row-size=50B cardinality=150.00K
 |
 |--00:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: tpch.orders.o_orderdate < '1993-10-01', tpch.orders.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: tpch.lineitem.l_commitdate < tpch.lineitem.l_receiptdate
    runtime filters: RF000 -> tpch.lineitem.l_orderkey
+   row-size=52B cardinality=600.12K
 ====
 # TPCH-Q5
 # Q5 - Local Supplier Volume Query
@@ -293,55 +327,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(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  group by: tpch.nation.n_name
+|  row-size=35B cardinality=25
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey
 |  runtime filters: RF000 <- tpch.region.r_regionkey
+|  row-size=134B cardinality=115.16K
 |
 |--05:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: tpch.region.r_name = 'ASIA'
+|     row-size=21B cardinality=1
 |
 09:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF002 <- tpch.nation.n_nationkey
+|  row-size=113B cardinality=575.77K
 |
 |--04:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF000 -> tpch.nation.n_regionkey
+|     row-size=23B cardinality=25
 |
 08:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.customer.c_nationkey = tpch.supplier.s_nationkey, tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey
 |  runtime filters: RF004 <- tpch.supplier.s_nationkey, RF005 <- tpch.supplier.s_suppkey
+|  row-size=90B cardinality=575.77K
 |
 |--03:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> tpch.supplier.s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey
 |  runtime filters: RF008 <- tpch.customer.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 -> tpch.customer.c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  runtime filters: RF010 <- tpch.orders.o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--01:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: tpch.orders.o_orderdate < '1995-01-01', tpch.orders.o_orderdate >= '1994-01-01'
 |     runtime filters: RF008 -> tpch.orders.o_custkey
+|     row-size=38B cardinality=150.00K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF005 -> tpch.lineitem.l_suppkey, RF010 -> tpch.lineitem.l_orderkey
+   row-size=32B cardinality=6.00M
 ====
 # TPCH-Q6
 # Q6 - Forecasting Revenue Change Query
@@ -359,10 +406,12 @@ PLAN-ROOT SINK
 |
 01:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_extendedprice * tpch.lineitem.l_discount)
+|  row-size=16B cardinality=1
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_discount <= 0.07, tpch.lineitem.l_discount >= 0.05, tpch.lineitem.l_quantity < 24, tpch.lineitem.l_shipdate < '1995-01-01', tpch.lineitem.l_shipdate >= '1994-01-01'
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q7
 # Q7 - Volume Shipping Query
@@ -409,54 +458,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(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  group by: tpch.nation.n_name, tpch.nation.n_name, year(tpch.lineitem.l_shipdate)
+|  row-size=58B cardinality=575.77K
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.customer.c_nationkey = tpch.nation.n_nationkey
 |  other predicates: ((tpch.nation.n_name = 'FRANCE' AND tpch.nation.n_name = 'GERMANY') OR (tpch.nation.n_name = 'GERMANY' AND tpch.nation.n_name = 'FRANCE'))
 |  runtime filters: RF000 <- tpch.nation.n_nationkey
+|  row-size=132B cardinality=575.77K
 |
 |--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: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF002 <- tpch.nation.n_nationkey
+|  row-size=111B cardinality=575.77K
 |
 |--04:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 08:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey
 |  runtime filters: RF004 <- tpch.customer.c_custkey
+|  row-size=90B cardinality=575.77K
 |
 |--03:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     runtime filters: RF000 -> tpch.customer.c_nationkey
+|     row-size=10B cardinality=150.00K
 |
 07:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey
 |  runtime filters: RF006 <- tpch.supplier.s_suppkey
+|  row-size=80B cardinality=575.77K
 |
 |--00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF002 -> tpch.supplier.s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  runtime filters: RF008 <- tpch.orders.o_orderkey
+|  row-size=70B cardinality=575.77K
 |
 |--02:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     runtime filters: RF004 -> tpch.orders.o_custkey
+|     row-size=16B cardinality=1.50M
 |
 01:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_shipdate <= '1996-12-31', tpch.lineitem.l_shipdate >= '1995-01-01'
    runtime filters: RF006 -> tpch.lineitem.l_suppkey, RF008 -> tpch.lineitem.l_orderkey
+   row-size=54B cardinality=600.12K
 ====
 # TPCH-Q8
 # Q8 - National Market Share Query
@@ -502,70 +564,87 @@ PLAN-ROOT SINK
 |
 16:SORT
 |  order by: o_year ASC
+|  row-size=36B cardinality=761
 |
 15:AGGREGATE [FINALIZE]
 |  output: sum(CASE WHEN tpch.nation.n_name = 'BRAZIL' THEN tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) ELSE 0 END), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  group by: year(tpch.orders.o_orderdate)
+|  row-size=36B cardinality=761
 |
 14:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF000 <- tpch.nation.n_nationkey
+|  row-size=184B cardinality=761
 |
 |--06:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
+|     row-size=21B cardinality=25
 |
 13:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey
 |  runtime filters: RF002 <- tpch.region.r_regionkey
+|  row-size=163B cardinality=761
 |
 |--07:SCAN HDFS [tpch.region]
 |     partitions=1/1 files=1 size=384B
 |     predicates: tpch.region.r_name = 'AMERICA'
+|     row-size=21B cardinality=1
 |
 12:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.customer.c_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF004 <- tpch.nation.n_nationkey
+|  row-size=143B cardinality=3.81K
 |
 |--05:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     runtime filters: RF002 -> tpch.nation.n_regionkey
+|     row-size=4B cardinality=25
 |
 11:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.customer.c_custkey = tpch.orders.o_custkey
 |  runtime filters: RF006 <- tpch.orders.o_custkey
+|  row-size=139B cardinality=3.81K
 |
 |--10:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey
 |  |  runtime filters: RF008 <- tpch.supplier.s_suppkey
+|  |  row-size=129B cardinality=3.81K
 |  |
 |  |--01:SCAN HDFS [tpch.supplier]
 |  |     partitions=1/1 files=1 size=1.33MB
 |  |     runtime filters: RF000 -> tpch.supplier.s_nationkey
+|  |     row-size=10B cardinality=10.00K
 |  |
 |  09:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.orders.o_orderkey = tpch.lineitem.l_orderkey
 |  |  runtime filters: RF010 <- tpch.lineitem.l_orderkey
+|  |  row-size=119B cardinality=3.81K
 |  |
 |  |--08:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey
 |  |  |  runtime filters: RF012 <- tpch.part.p_partkey
+|  |  |  row-size=81B cardinality=39.66K
 |  |  |
 |  |  |--00:SCAN HDFS [tpch.part]
 |  |  |     partitions=1/1 files=1 size=22.83MB
 |  |  |     predicates: tpch.part.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 -> tpch.lineitem.l_suppkey, RF012 -> tpch.lineitem.l_partkey
+|  |     row-size=40B cardinality=6.00M
 |  |
 |  03:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     predicates: tpch.orders.o_orderdate <= '1996-12-31', tpch.orders.o_orderdate >= '1995-01-01'
 |     runtime filters: RF010 -> tpch.orders.o_orderkey
+|     row-size=38B cardinality=150.00K
 |
 04:SCAN HDFS [tpch.customer]
    partitions=1/1 files=1 size=23.08MB
    runtime filters: RF004 -> tpch.customer.c_nationkey, RF006 -> tpch.customer.c_custkey
+   row-size=10B cardinality=150.00K
 ====
 # TPCH-Q9
 # Q9 - Product Type Measure Query
@@ -605,52 +684,65 @@ PLAN-ROOT SINK
 |
 12:SORT
 |  order by: nation ASC, o_year DESC
+|  row-size=39B cardinality=61.70K
 |
 11:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) - tpch.partsupp.ps_supplycost * tpch.lineitem.l_quantity)
 |  group by: tpch.nation.n_name, year(tpch.orders.o_orderdate)
+|  row-size=39B cardinality=61.70K
 |
 10:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF000 <- tpch.nation.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: tpch.lineitem.l_partkey = tpch.partsupp.ps_partkey, tpch.lineitem.l_suppkey = tpch.partsupp.ps_suppkey
 |  runtime filters: RF002 <- tpch.partsupp.ps_partkey, RF003 <- tpch.partsupp.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: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey
 |  runtime filters: RF006 <- tpch.supplier.s_suppkey
+|  row-size=141B cardinality=574.29K
 |
 |--01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> tpch.supplier.s_nationkey, RF003 -> tpch.supplier.s_suppkey
+|     row-size=10B cardinality=10.00K
 |
 07:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  runtime filters: RF008 <- tpch.orders.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: tpch.lineitem.l_partkey = tpch.part.p_partkey
 |  runtime filters: RF010 <- tpch.part.p_partkey
+|  row-size=101B cardinality=598.58K
 |
 |--00:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: tpch.part.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 -> tpch.lineitem.l_partkey, RF003 -> tpch.lineitem.l_suppkey, RF006 -> tpch.lineitem.l_suppkey, RF008 -> tpch.lineitem.l_orderkey, RF010 -> tpch.lineitem.l_partkey
+   row-size=48B cardinality=6.00M
 ====
 # TPCH-Q10
 # Q10 - Returned Item Reporting Query
@@ -692,38 +784,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(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  group by: tpch.customer.c_custkey, tpch.customer.c_name, tpch.customer.c_acctbal, tpch.customer.c_phone, tpch.nation.n_name, tpch.customer.c_address, tpch.customer.c_comment
+|  row-size=230B cardinality=191.92K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.customer.c_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF000 <- tpch.nation.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: tpch.customer.c_custkey = tpch.orders.o_custkey
 |  runtime filters: RF002 <- tpch.orders.o_custkey
+|  row-size=272B cardinality=191.92K
 |
 |--04:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  |  runtime filters: RF004 <- tpch.orders.o_orderkey
+|  |  row-size=75B cardinality=191.92K
 |  |
 |  |--01:SCAN HDFS [tpch.orders]
 |  |     partitions=1/1 files=1 size=162.56MB
 |  |     predicates: tpch.orders.o_orderdate < '1994-01-01', tpch.orders.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: tpch.lineitem.l_returnflag = 'R'
 |     runtime filters: RF004 -> tpch.lineitem.l_orderkey
+|     row-size=37B cardinality=2.00M
 |
 00:SCAN HDFS [tpch.customer]
    partitions=1/1 files=1 size=23.08MB
    runtime filters: RF000 -> tpch.customer.c_nationkey, RF002 -> tpch.customer.c_custkey
+   row-size=197B cardinality=150.00K
 ====
 # TPCH-Q11
 # Q11 - Important Stock Identification
@@ -765,56 +866,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(tpch.partsupp.ps_supplycost * tpch.partsupp.ps_availqty)
+|  |  row-size=16B cardinality=1
 |  |
 |  10:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  |  runtime filters: RF004 <- tpch.nation.n_nationkey
+|  |  row-size=51B cardinality=32.00K
 |  |
 |  |--08:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     predicates: tpch.nation.n_name = 'GERMANY'
+|  |     row-size=21B cardinality=1
 |  |
 |  09:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey
 |  |  runtime filters: RF006 <- tpch.supplier.s_suppkey
+|  |  row-size=30B cardinality=800.00K
 |  |
 |  |--07:SCAN HDFS [tpch.supplier]
 |  |     partitions=1/1 files=1 size=1.33MB
 |  |     runtime filters: RF004 -> tpch.supplier.s_nationkey
+|  |     row-size=10B cardinality=10.00K
 |  |
 |  06:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
 |     runtime filters: RF006 -> tpch.partsupp.ps_suppkey
+|     row-size=20B cardinality=800.00K
 |
 05:AGGREGATE [FINALIZE]
 |  output: sum(tpch.partsupp.ps_supplycost * tpch.partsupp.ps_availqty)
 |  group by: tpch.partsupp.ps_partkey
+|  row-size=24B cardinality=32.00K
 |
 04:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  runtime filters: RF000 <- tpch.nation.n_nationkey
+|  row-size=59B cardinality=32.00K
 |
 |--02:SCAN HDFS [tpch.nation]
 |     partitions=1/1 files=1 size=2.15KB
 |     predicates: tpch.nation.n_name = 'GERMANY'
+|     row-size=21B cardinality=1
 |
 03:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey
 |  runtime filters: RF002 <- tpch.supplier.s_suppkey
+|  row-size=38B cardinality=800.00K
 |
 |--01:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF000 -> tpch.supplier.s_nationkey
+|     row-size=10B cardinality=10.00K
 |
 00:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF002 -> tpch.partsupp.ps_suppkey
+   row-size=28B cardinality=800.00K
 ====
 # TPCH-Q12
 # Q12 - Shipping Mode and Order Priority Query
@@ -851,22 +966,27 @@ PLAN-ROOT SINK
 |
 04:SORT
 |  order by: l_shipmode ASC
+|  row-size=32B cardinality=7
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum(CASE WHEN tpch.orders.o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum(CASE WHEN tpch.orders.o_orderpriority != '1-URGENT' AND tpch.orders.o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END)
 |  group by: tpch.lineitem.l_shipmode
+|  row-size=32B cardinality=7
 |
 02:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.orders.o_orderkey = tpch.lineitem.l_orderkey
 |  runtime filters: RF000 <- tpch.lineitem.l_orderkey
+|  row-size=119B cardinality=320.78K
 |
 |--01:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: tpch.lineitem.l_shipmode IN ('MAIL', 'SHIP'), tpch.lineitem.l_commitdate < tpch.lineitem.l_receiptdate, tpch.lineitem.l_receiptdate < '1995-01-01', tpch.lineitem.l_receiptdate >= '1994-01-01', tpch.lineitem.l_shipdate < tpch.lineitem.l_commitdate
+|     row-size=90B cardinality=320.78K
 |
 00:SCAN HDFS [tpch.orders]
    partitions=1/1 files=1 size=162.56MB
    runtime filters: RF000 -> tpch.orders.o_orderkey
+   row-size=28B cardinality=1.50M
 ====
 # TPCH-Q13
 # Q13 - Customer Distribution Query
@@ -895,26 +1015,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(tpch.orders.o_orderkey)
 |  group by: tpch.customer.c_custkey
+|  row-size=16B cardinality=150.00K
 |
 02:HASH JOIN [RIGHT OUTER JOIN]
 |  hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey
 |  runtime filters: RF000 <- tpch.customer.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 tpch.orders.o_comment LIKE '%special%requests%'
    runtime filters: RF000 -> tpch.orders.o_custkey
+   row-size=77B cardinality=150.00K
 ====
 # TPCH-Q14
 # Q14 - Promotion Effect
@@ -936,18 +1062,22 @@ PLAN-ROOT SINK
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum(CASE WHEN tpch.part.p_type LIKE 'PROMO%' THEN tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) ELSE 0 END), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
+|  row-size=32B cardinality=1
 |
 02:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey
 |  runtime filters: RF000 <- tpch.part.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: tpch.lineitem.l_shipdate < '1995-10-01', tpch.lineitem.l_shipdate >= '1995-09-01'
    runtime filters: RF000 -> tpch.lineitem.l_partkey
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q15
 # Q15 - Top Supplier Query
@@ -986,36 +1116,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(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  |  group by: tpch.lineitem.l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  03:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: tpch.lineitem.l_shipdate < '1996-04-01', tpch.lineitem.l_shipdate >= '1996-01-01'
+|     row-size=46B cardinality=600.12K
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.supplier.s_suppkey = l_suppkey
 |  runtime filters: RF000 <- l_suppkey
+|  row-size=126B cardinality=10.00K
 |
 |--02:AGGREGATE [FINALIZE]
 |  |  output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
 |  |  group by: tpch.lineitem.l_suppkey
+|  |  row-size=24B cardinality=9.71K
 |  |
 |  01:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     predicates: tpch.lineitem.l_shipdate < '1996-04-01', tpch.lineitem.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 -> tpch.supplier.s_suppkey
+   row-size=102B cardinality=10.00K
 ====
 # TPCH-Q16
 # Q16 - Parts/Supplier Relation Query
@@ -1054,32 +1193,40 @@ PLAN-ROOT SINK
 |
 07:SORT
 |  order by: count(ps_suppkey) DESC, p_brand ASC, p_type ASC, p_size ASC
+|  row-size=65B cardinality=31.92K
 |
 06:AGGREGATE [FINALIZE]
 |  output: count(ps_suppkey)
 |  group by: p_brand, p_type, p_size
+|  row-size=65B cardinality=31.92K
 |
 05:AGGREGATE
 |  group by: tpch.part.p_brand, tpch.part.p_type, tpch.part.p_size, tpch.partsupp.ps_suppkey
+|  row-size=65B cardinality=31.92K
 |
 04:HASH JOIN [NULL AWARE LEFT ANTI JOIN]
 |  hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey
+|  row-size=81B cardinality=31.92K
 |
 |--02:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     predicates: tpch.supplier.s_comment LIKE '%Customer%Complaints%'
+|     row-size=83B cardinality=1.00K
 |
 03:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.partsupp.ps_partkey = tpch.part.p_partkey
 |  runtime filters: RF000 <- tpch.part.p_partkey
+|  row-size=81B cardinality=31.92K
 |
 |--01:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: tpch.part.p_size IN (49, 14, 23, 45, 19, 3, 36, 9), tpch.part.p_brand != 'Brand#45', NOT tpch.part.p_type LIKE 'MEDIUM POLISHED%'
+|     row-size=65B cardinality=8.00K
 |
 00:SCAN HDFS [tpch.partsupp]
    partitions=1/1 files=1 size=112.71MB
    runtime filters: RF000 -> tpch.partsupp.ps_partkey
+   row-size=16B cardinality=800.00K
 ====
 # TPCH-Q17
 # Q17 - Small-Quantity-Order Revenue Query
@@ -1105,31 +1252,38 @@ PLAN-ROOT SINK
 |
 06:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_extendedprice)
+|  row-size=16B cardinality=1
 |
 05:HASH JOIN [RIGHT SEMI JOIN]
 |  hash predicates: l_partkey = tpch.part.p_partkey
 |  other join predicates: tpch.lineitem.l_quantity < 0.2 * avg(l_quantity)
 |  runtime filters: RF000 <- tpch.part.p_partkey
+|  row-size=72B cardinality=29.93K
 |
 |--04:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey
 |  |  runtime filters: RF002 <- tpch.part.p_partkey
+|  |  row-size=72B cardinality=29.93K
 |  |
 |  |--01:SCAN HDFS [tpch.part]
 |  |     partitions=1/1 files=1 size=22.83MB
 |  |     predicates: tpch.part.p_container = 'MED BOX', tpch.part.p_brand = 'Brand#23'
+|  |     row-size=48B cardinality=1.00K
 |  |
 |  00:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     runtime filters: RF002 -> tpch.lineitem.l_partkey
+|     row-size=24B cardinality=6.00M
 |
 03:AGGREGATE [FINALIZE]
 |  output: avg(tpch.lineitem.l_quantity)
 |  group by: tpch.lineitem.l_partkey
+|  row-size=16B cardinality=200.52K
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF000 -> tpch.lineitem.l_partkey
+   row-size=16B cardinality=6.00M
 ====
 # TPCH-Q18
 # Q18 - Large Value Customer Query
@@ -1172,41 +1326,51 @@ PLAN-ROOT SINK
 |
 09:TOP-N [LIMIT=100]
 |  order by: o_totalprice DESC, o_orderdate ASC
+|  row-size=92B cardinality=100
 |
 08:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_quantity)
 |  group by: tpch.customer.c_name, tpch.customer.c_custkey, tpch.orders.o_orderkey, tpch.orders.o_orderdate, tpch.orders.o_totalprice
+|  row-size=92B cardinality=600.12K
 |
 07:HASH JOIN [LEFT SEMI JOIN]
 |  hash predicates: tpch.orders.o_orderkey = l_orderkey
 |  runtime filters: RF000 <- l_orderkey
+|  row-size=100B cardinality=600.12K
 |
 |--04:AGGREGATE [FINALIZE]
 |  |  output: sum(tpch.lineitem.l_quantity)
 |  |  group by: tpch.lineitem.l_orderkey
 |  |  having: sum(l_quantity) > 300
+|  |  row-size=24B cardinality=156.34K
 |  |
 |  03:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
+|     row-size=16B cardinality=6.00M
 |
 06:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey
 |  runtime filters: RF002 <- tpch.customer.c_custkey
+|  row-size=100B cardinality=5.76M
 |
 |--00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
+|     row-size=38B cardinality=150.00K
 |
 05:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  runtime filters: RF004 <- tpch.orders.o_orderkey
+|  row-size=62B cardinality=5.76M
 |
 |--01:SCAN HDFS [tpch.orders]
 |     partitions=1/1 files=1 size=162.56MB
 |     runtime filters: RF000 -> tpch.orders.o_orderkey, RF002 -> tpch.orders.o_custkey
+|     row-size=46B cardinality=1.50M
 |
 02:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    runtime filters: RF000 -> tpch.lineitem.l_orderkey, RF004 -> tpch.lineitem.l_orderkey
+   row-size=16B cardinality=6.00M
 ====
 # TPCH-Q19
 # Q19 - Discounted Revenue Query
@@ -1250,20 +1414,24 @@ PLAN-ROOT SINK
 |
 03:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount))
+|  row-size=16B cardinality=1
 |
 02:HASH JOIN [INNER JOIN]
 |  hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey
 |  other predicates: ((tpch.part.p_brand = 'Brand#12' AND tpch.part.p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') AND tpch.lineitem.l_quantity >= 1 AND tpch.lineitem.l_quantity <= 11 AND tpch.part.p_size <= 5) OR (tpch.part.p_brand = 'Brand#23' AND tpch.part.p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') AND tpch.lineitem.l_quantity >= 10 AND tpch.lineitem.l_quantity <= 20 AND tpch.part.p_size <= 10) OR (tpch.part.p_brand = 'Brand#34' AND tpch.part.p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') AND tpch.lineitem.l_quantity >= 20 AND tpch.lineitem.l_quantity <= 30 AND tpch.part.p_size <= 15))
 |  runtime filters: RF000 <- tpch.part.p_partkey
+|  row-size=124B cardinality=79.99K
 |
 |--01:SCAN HDFS [tpch.part]
 |     partitions=1/1 files=1 size=22.83MB
 |     predicates: tpch.part.p_size >= 1
+|     row-size=52B cardinality=20.00K
 |
 00:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_shipmode IN ('AIR', 'AIR REG'), tpch.lineitem.l_shipinstruct = 'DELIVER IN PERSON'
    runtime filters: RF000 -> tpch.lineitem.l_partkey
+   row-size=72B cardinality=801.95K
 ====
 # TPCH-Q20
 # Q20 - Potential Part Promotion Query
@@ -1309,48 +1477,59 @@ PLAN-ROOT SINK
 |
 10:SORT
 |  order by: s_name ASC
+|  row-size=67B cardinality=400
 |
 09:HASH JOIN [RIGHT SEMI JOIN]
 |  hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey
 |  runtime filters: RF000 <- tpch.supplier.s_suppkey
+|  row-size=98B cardinality=400
 |
 |--08:HASH JOIN [INNER JOIN]
 |  |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  |  runtime filters: RF008 <- tpch.nation.n_nationkey
+|  |  row-size=98B cardinality=400
 |  |
 |  |--01:SCAN HDFS [tpch.nation]
 |  |     partitions=1/1 files=1 size=2.15KB
 |  |     predicates: tpch.nation.n_name = 'CANADA'
+|  |     row-size=21B cardinality=1
 |  |
 |  00:SCAN HDFS [tpch.supplier]
 |     partitions=1/1 files=1 size=1.33MB
 |     runtime filters: RF008 -> tpch.supplier.s_nationkey
+|     row-size=77B cardinality=10.00K
 |
 07:HASH JOIN [RIGHT SEMI JOIN]
 |  hash predicates: l_partkey = tpch.partsupp.ps_partkey, l_suppkey = tpch.partsupp.ps_suppkey
 |  other join predicates: tpch.partsupp.ps_availqty > 0.5 * sum(l_quantity)
 |  runtime filters: RF002 <- tpch.partsupp.ps_partkey, RF003 <- tpch.partsupp.ps_suppkey
+|  row-size=20B cardinality=79.79K
 |
 |--06:HASH JOIN [LEFT SEMI JOIN]
 |  |  hash predicates: tpch.partsupp.ps_partkey = tpch.part.p_partkey
 |  |  runtime filters: RF006 <- tpch.part.p_partkey
+|  |  row-size=20B cardinality=79.79K
 |  |
 |  |--03:SCAN HDFS [tpch.part]
 |  |     partitions=1/1 files=1 size=22.83MB
 |  |     predicates: tpch.part.p_name LIKE 'forest%'
+|  |     row-size=53B cardinality=20.00K
 |  |
 |  02:SCAN HDFS [tpch.partsupp]
 |     partitions=1/1 files=1 size=112.71MB
 |     runtime filters: RF000 -> tpch.partsupp.ps_suppkey, RF006 -> tpch.partsupp.ps_partkey
+|     row-size=20B cardinality=800.00K
 |
 05:AGGREGATE [FINALIZE]
 |  output: sum(tpch.lineitem.l_quantity)
 |  group by: tpch.lineitem.l_partkey, tpch.lineitem.l_suppkey
+|  row-size=32B cardinality=600.12K
 |
 04:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_shipdate < '1995-01-01', tpch.lineitem.l_shipdate >= '1994-01-01'
    runtime filters: RF000 -> tpch.lineitem.l_suppkey, RF002 -> tpch.lineitem.l_partkey, RF003 -> tpch.lineitem.l_suppkey
+   row-size=46B cardinality=600.12K
 ====
 # TPCH-Q21
 # Q21 - Suppliers Who Kept Orders Waiting Query
@@ -1399,56 +1578,69 @@ PLAN-ROOT SINK
 |
 12:TOP-N [LIMIT=100]
 |  order by: count(*) DESC, s_name ASC
+|  row-size=38B cardinality=100
 |
 11:AGGREGATE [FINALIZE]
 |  output: count(*)
 |  group by: tpch.supplier.s_name
+|  row-size=38B cardinality=7.68K
 |
 10:HASH JOIN [RIGHT ANTI JOIN]
 |  hash predicates: tpch.lineitem.l_orderkey = tpch.lineitem.l_orderkey
 |  other join predicates: tpch.lineitem.l_suppkey != tpch.lineitem.l_suppkey
+|  row-size=142B cardinality=7.68K
 |
 |--09:HASH JOIN [RIGHT SEMI JOIN]
 |  |  hash predicates: tpch.lineitem.l_orderkey = tpch.lineitem.l_orderkey
 |  |  other join predicates: tpch.lineitem.l_suppkey != tpch.lineitem.l_suppkey
 |  |  runtime filters: RF000 <- tpch.lineitem.l_orderkey
+|  |  row-size=142B cardinality=7.68K
 |  |
 |  |--08:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey
 |  |  |  runtime filters: RF002 <- tpch.nation.n_nationkey
+|  |  |  row-size=142B cardinality=7.68K
 |  |  |
 |  |  |--03:SCAN HDFS [tpch.nation]
 |  |  |     partitions=1/1 files=1 size=2.15KB
 |  |  |     predicates: tpch.nation.n_name = 'SAUDI ARABIA'
+|  |  |     row-size=21B cardinality=1
 |  |  |
 |  |  07:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey
 |  |  |  runtime filters: RF004 <- tpch.supplier.s_suppkey
+|  |  |  row-size=121B cardinality=191.92K
 |  |  |
 |  |  |--00:SCAN HDFS [tpch.supplier]
 |  |  |     partitions=1/1 files=1 size=1.33MB
 |  |  |     runtime filters: RF002 -> tpch.supplier.s_nationkey
+|  |  |     row-size=40B cardinality=10.00K
 |  |  |
 |  |  06:HASH JOIN [INNER JOIN]
 |  |  |  hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey
 |  |  |  runtime filters: RF006 <- tpch.orders.o_orderkey
+|  |  |  row-size=81B cardinality=191.92K
 |  |  |
 |  |  |--02:SCAN HDFS [tpch.orders]
 |  |  |     partitions=1/1 files=1 size=162.56MB
 |  |  |     predicates: tpch.orders.o_orderstatus = 'F'
+|  |  |     row-size=21B cardinality=500.00K
 |  |  |
 |  |  01:SCAN HDFS [tpch.lineitem]
 |  |     partitions=1/1 files=1 size=718.94MB
 |  |     predicates: tpch.lineitem.l_receiptdate > tpch.lineitem.l_commitdate
 |  |     runtime filters: RF004 -> tpch.lineitem.l_suppkey, RF006 -> tpch.lineitem.l_orderkey
+|  |     row-size=60B cardinality=600.12K
 |  |
 |  04:SCAN HDFS [tpch.lineitem]
 |     partitions=1/1 files=1 size=718.94MB
 |     runtime filters: RF000 -> tpch.lineitem.l_orderkey
+|     row-size=16B cardinality=6.00M
 |
 05:SCAN HDFS [tpch.lineitem]
    partitions=1/1 files=1 size=718.94MB
    predicates: tpch.lineitem.l_receiptdate > tpch.lineitem.l_commitdate
+   row-size=60B cardinality=600.12K
 ====
 # TPCH-Q22
 # Q22 - Global Sales Opportunity Query
@@ -1491,28 +1683,36 @@ PLAN-ROOT SINK
 |
 07:SORT
 |  order by: cntrycode ASC
+|  row-size=36B cardinality=15.00K
 |
 06:AGGREGATE [FINALIZE]
 |  output: count(*), sum(tpch.customer.c_acctbal)
 |  group by: substr(tpch.customer.c_phone, 1, 2)
+|  row-size=36B cardinality=15.00K
 |
 05:HASH JOIN [RIGHT ANTI JOIN]
 |  hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey
+|  row-size=51B cardinality=15.00K
 |
 |--04:NESTED LOOP JOIN [INNER JOIN]
 |  |  predicates: tpch.customer.c_acctbal > avg(c_acctbal)
+|  |  row-size=51B cardinality=15.00K
 |  |
 |  |--02:AGGREGATE [FINALIZE]
 |  |  |  output: avg(tpch.customer.c_acctbal)
+|  |  |  row-size=8B cardinality=1
 |  |  |
 |  |  01:SCAN HDFS [tpch.customer]
 |  |     partitions=1/1 files=1 size=23.08MB
 |  |     predicates: tpch.customer.c_acctbal > 0, substr(tpch.customer.c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17')
+|  |     row-size=35B cardinality=15.00K
 |  |
 |  00:SCAN HDFS [tpch.customer]
 |     partitions=1/1 files=1 size=23.08MB
 |     predicates: substr(tpch.customer.c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17')
+|     row-size=43B cardinality=15.00K
 |
 03:SCAN HDFS [tpch.orders]
    partitions=1/1 files=1 size=162.56MB
+   row-size=8B cardinality=1.50M
 ====