!1166 [79] [I44VUV] Fix Dynamic Filters Issue when ORC Predicate Pushdown is enabled

Merge pull request !1166 from i-robot/pull80
This commit is contained in:
i-robot 2021-10-19 07:12:49 +00:00 committed by Gitee
commit f7ebb98b76
2 changed files with 14 additions and 16 deletions

View File

@ -6,19 +6,17 @@ local exchange (GATHER, SINGLE, [])
local exchange (REPARTITION, HASH, ["d_moy$gid", "d_qoy$gid", "d_year$gid", "groupid", "i_brand$gid", "i_category$gid", "i_class$gid", "i_product_name$gid", "s_store_id$gid"])
remote exchange (REPARTITION, HASH, ["d_moy$gid", "d_qoy$gid", "d_year$gid", "groupid", "i_brand$gid", "i_category$gid", "i_class$gid", "i_product_name$gid", "s_store_id$gid"])
partial hashaggregation over (d_moy$gid, d_qoy$gid, d_year$gid, groupid, i_brand$gid, i_category$gid, i_class$gid, i_product_name$gid, s_store_id$gid)
local exchange (REPARTITION, HASH, ["i_brand", "i_category", "i_class", "i_product_name"])
remote exchange (REPARTITION, HASH, ["i_brand", "i_category", "i_class", "i_product_name"])
join (INNER, PARTITIONED):
remote exchange (REPARTITION, HASH, ["ss_item_sk"])
join (INNER, REPLICATED):
join (INNER, REPLICATED):
scan store_sales
local exchange (GATHER, SINGLE, [])
remote exchange (REPLICATE, BROADCAST, [])
scan date_dim (pushdown = true)
local exchange (GATHER, SINGLE, [])
remote exchange (REPLICATE, BROADCAST, [])
scan store
join (INNER, PARTITIONED):
remote exchange (REPARTITION, HASH, ["ss_item_sk"])
join (INNER, REPLICATED):
join (INNER, REPLICATED):
scan store_sales
local exchange (GATHER, SINGLE, [])
remote exchange (REPLICATE, BROADCAST, [])
scan date_dim (pushdown = true)
local exchange (GATHER, SINGLE, [])
remote exchange (REPARTITION, HASH, ["i_item_sk"])
scan item
remote exchange (REPLICATE, BROADCAST, [])
scan store
local exchange (GATHER, SINGLE, [])
remote exchange (REPARTITION, HASH, ["i_item_sk"])
scan item

View File

@ -81,7 +81,7 @@ public class TableScanStatsRule
Map<ColumnHandle, Symbol> assignments = ImmutableBiMap.copyOf(node.getAssignments()).inverse();
boolean isPredicatesPushDown = false;
if (predicate.isAll()
if ((predicate.isAll() || predicate.getDomains().get().equals(node.getEnforcedConstraint().getDomains().get()))
&& !(node.getEnforcedConstraint().isAll() || node.getEnforcedConstraint().isNone())) {
predicate = node.getEnforcedConstraint();
isPredicatesPushDown = true;