[ https://issues.apache.org/jira/browse/DRILL-7557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Abhishek Girish updated DRILL-7557: ----------------------------------- Target Version/s: 1.19.0 > Revise "Base" storage plugin filter-push down listerner with a builder > ---------------------------------------------------------------------- > > Key: DRILL-7557 > URL: https://issues.apache.org/jira/browse/DRILL-7557 > Project: Apache Drill > Issue Type: Improvement > Affects Versions: 1.18.0 > Reporter: Paul Rogers > Assignee: Paul Rogers > Priority: Major > Fix For: 1.18.0 > > > DRILL-7458 introduces a base framework for storage plugins and includes a > simplified mechanism for filter push down. Part of that mechanism includes a > "listener", with the bulk of the work done in a single method: > {code:java} > Pair<GroupScan, List<RexNode>> transform(GroupScan groupScan, > List<Pair<RexNode, RelOp>> andTerms, Pair<RexNode, > DisjunctionFilterSpec> orTerm); > {code} > Reviewers correctly pointed out that this method might be a bit too complex. > The listener pattern pretty much forced the present design. To improve it, > we'd want to use a different design; maybe some kind of builder which might: > * Accept the CNF and DNF terms via dedicated methods. > * Perform a processing step. > * Provide a number of methods to communicate the results, such as 1) whether > a new group scan is needed, 2) any CNF terms to retain, and 3) any DNF terms > to retain. -- This message was sent by Atlassian Jira (v8.3.4#803005)