[
https://issues.apache.org/jira/browse/DRILL-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14279900#comment-14279900
]
Aman Sinha commented on DRILL-2019:
-----------------------------------
The FilterPrel's getSupportedEncoding() was returning NONE_AND_TWO - meaning
it would accept inputs that have either no selection vectors or SV2. This is
wrong because a Filter would add its own SV2, so it should accept only inputs
with NONE. Making this change introduces the SVRemover for each of the
filters and produces right result.
I also tried enabling Calcite's MergeFilterRule in DrillRuleSets (it was never
added there) but it did not help because Calcite's logical plan consists of the
two FilterRels with an intervening ProjectRel, which prevents the
MergeFilterRule from getting applied.
> Filter pushdown into the subquery when the subquery also has a filter is
> resulting in incorrect results
> -------------------------------------------------------------------------------------------------------
>
> Key: DRILL-2019
> URL: https://issues.apache.org/jira/browse/DRILL-2019
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Operators, Query Planning & Optimization
> Reporter: Rahul Challapalli
> Assignee: Aman Sinha
> Priority: Critical
>
> git.commit.id.abbrev=b491cdb
> The below query on top of tpch 0.01 data should actually return 0 records.
> (Verified with postgres). However drill returns incorrect result
> {code}
> select count(*) from cp.`tpch/lineitem.parquet` l inner join (select
> o.o_orderkey, o.o_custkey from cp.`tpch/orders.parquet` o where o.o_custkey <
> 5) s on l.l_orderkey = s.o_orderkey and s.o_custkey > 5;
> +------------+
> | EXPR$0 |
> +------------+
> | 189 |
> +------------+
> {code}
> Marked as 'critical' since drill is reporting incorrect results
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)