Hi,
Consider the following query:
INSERT OVERWRITE TABLE q1_pricing_summary_report
SELECT
L_RETURNFLAG, L_LINESTATUS, 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(1)
FROM
lineitem
WHERE
L_SHIPDATE<='1998-09-02'
GROUP BY L_RETURNFLAG, L_LINESTATUS
ORDER BY L_RETURNFLAG, L_LIN
There is a segment in the query plan like this:
Filter Operator
predicate:
expr: (l_shipdate <= '1998-09-02')
type: boolean
Filter Operator
predicate:
expr: (l_shipdate <= '1998-09-02')
type: boolean
Why the filter operator repeatedly appear twice?
Similarly, for query
insert overwrite table q2_minimum_cost_supplier_tmp1
select
s.s_acctbal, s.s_name, n.n_name, p.p_partkey, ps.ps_supplycost,
p.p_mfgr, s.s_address, s.s_phone, s.s_comment
from
nation n join region r
on
n.n_regionkey = r.r_regionkey and r.r_name = 'EUROPE'
join supplier s
on
s.s_nationkey = n.n_nationkey
join partsupp ps
on
s.s_suppkey = ps.ps_suppkey
join part p
on
p.p_partkey = ps.ps_partkey and p.p_size = 15 and p.p_type like '%BRASS' ;
The filter operator also appear in the query multiple times.
Filter Operator
predicate:
expr: (p_type like '%BRASS')
type: boolean
Filter Operator
predicate:
expr: (p_size = 15)
type: boolean
Filter Operator
predicate:
expr: ((p_size = 15) and (p_type like '%BRASS'))
type: boolean
TableScan
alias: p
Thanks a lot!
Yingyi