You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by chunhui-shi <gi...@git.apache.org> on 2017/12/29 23:51:40 UTC

[GitHub] drill pull request #1078: DRILL-6054: don't try to split the filter when it ...

GitHub user chunhui-shi opened a pull request:

    https://github.com/apache/drill/pull/1078

    DRILL-6054: don't try to split the filter when it is not AND

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/chunhui-shi/drill work1

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/drill/pull/1078.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1078
    
----
commit e44ed46471317f43c494a497551e6546016f3a10
Author: chunhui-shi <cs...@...>
Date:   2017-12-22T23:42:27Z

    DRILL-6054: don't try to split the filter when it is not AND

----


---

[GitHub] drill pull request #1078: DRILL-6054: don't try to split the filter when it ...

Posted by chunhui-shi <gi...@git.apache.org>.
Github user chunhui-shi commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1078#discussion_r160741771
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java ---
    @@ -228,13 +236,16 @@ private boolean isHolisticExpression(RexCall call) {
         return false;
       }
     
    +  protected boolean inputRefToPush(RexInputRef inputRef) {
    --- End diff --
    
    This is intentionally made to be 'protected' for future extension.
    Right now, FindPartitionCondition use position based inputRef(using BitSet dirs) to mark which inputRef should be pushed. But in future, we may use name based policy to decide which one to push. 


---

[GitHub] drill pull request #1078: DRILL-6054: don't try to split the filter when it ...

Posted by chunhui-shi <gi...@git.apache.org>.
Github user chunhui-shi commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1078#discussion_r160741806
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java ---
    @@ -195,8 +195,16 @@ private void popOpStackAndBuildFilter() {
              * For all other operators we clear the children if one of the
              * children is a no push.
              */
    -        assert currentOp.getOp().getKind() == SqlKind.AND;
    -        newFilter = currentOp.getChildren().get(0);
    +        if (currentOp.getOp().getKind() == SqlKind.AND) {
    +          newFilter = currentOp.getChildren().get(0);
    +          for(OpState opState : opStack) {
    --- End diff --
    
    done.


---

[GitHub] drill pull request #1078: DRILL-6054: don't try to split the filter when it ...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/drill/pull/1078


---

[GitHub] drill pull request #1078: DRILL-6054: don't try to split the filter when it ...

Posted by arina-ielchiieva <gi...@git.apache.org>.
Github user arina-ielchiieva commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1078#discussion_r160664549
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java ---
    @@ -228,13 +236,16 @@ private boolean isHolisticExpression(RexCall call) {
         return false;
       }
     
    +  protected boolean inputRefToPush(RexInputRef inputRef) {
    --- End diff --
    
    Can be made private. Should be placed under public methods.


---

[GitHub] drill issue #1078: DRILL-6054: don't try to split the filter when it is not ...

Posted by arina-ielchiieva <gi...@git.apache.org>.
Github user arina-ielchiieva commented on the issue:

    https://github.com/apache/drill/pull/1078
  
    +1, LGTM.


---

[GitHub] drill pull request #1078: DRILL-6054: don't try to split the filter when it ...

Posted by arina-ielchiieva <gi...@git.apache.org>.
Github user arina-ielchiieva commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1078#discussion_r160665449
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java ---
    @@ -195,8 +195,16 @@ private void popOpStackAndBuildFilter() {
              * For all other operators we clear the children if one of the
              * children is a no push.
              */
    -        assert currentOp.getOp().getKind() == SqlKind.AND;
    -        newFilter = currentOp.getChildren().get(0);
    +        if (currentOp.getOp().getKind() == SqlKind.AND) {
    +          newFilter = currentOp.getChildren().get(0);
    +          for(OpState opState : opStack) {
    --- End diff --
    
    Please add space: `for (`


---