Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-458

Visit methods of LogicalPlanVisitor should take a query block as parameter

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.8.0
    • Component/s: Planner/Optimizer
    • Labels:
      None

      Description

      A logical plan is composed of multiple query blocks. Each logical node must belong to one query block. A query block instance provides lots of information. So, it is essential information in many rewrite rules and optimizer implementations.

      However, so far, individual rewrite rule or optimizer implementation have dealt with query block directly. It may be error-prone and cause duplicated codes. This patch refactors each visitor method of LogicalPlanVisitor to take a query block as a parameter.

      I'm expecting that this change will provide more convenience for rewrite rules and optimization development.

      1. TAJO-458.patch
        86 kB
        Hyunsik Choi

        Activity

        Hide
        hudson Hudson added a comment -

        SUCCESS: Integrated in Tajo-trunk-postcommit #652 (See https://builds.apache.org/job/Tajo-trunk-postcommit/652/)
        TAJO-458: Visit methods of LogicalPlanVisitor should take a query block as parameter. (hyunsik) (hyunsik: https://git-wip-us.apache.org/repos/asf?p=incubator-tajo.git&a=commit&h=c7990c724898cd136fe87d508a4b07f62ede3567)

        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalOptimizer.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java
        • CHANGES.txt
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/FilterPushDownRule.java
        • tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java
        Show
        hudson Hudson added a comment - SUCCESS: Integrated in Tajo-trunk-postcommit #652 (See https://builds.apache.org/job/Tajo-trunk-postcommit/652/ ) TAJO-458 : Visit methods of LogicalPlanVisitor should take a query block as parameter. (hyunsik) (hyunsik: https://git-wip-us.apache.org/repos/asf?p=incubator-tajo.git&a=commit&h=c7990c724898cd136fe87d508a4b07f62ede3567 ) tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalOptimizer.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BaseAlgebraVisitor.java CHANGES.txt tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/NodeType.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExplainLogicalPlanVisitor.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVisitor.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/FilterPushDownRule.java tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java
        Hide
        hyunsik Hyunsik Choi added a comment -

        This issue received +1 in reviewboard.
        https://reviews.apache.org/r/16495/

        committed it to master branch.

        Show
        hyunsik Hyunsik Choi added a comment - This issue received +1 in reviewboard. https://reviews.apache.org/r/16495/ committed it to master branch.
        Hide
        hyunsik Hyunsik Choi added a comment -

        I've uploaded the second patch. I also updated the reviewboard.

        Show
        hyunsik Hyunsik Choi added a comment - I've uploaded the second patch. I also updated the reviewboard.
        Hide
        jihoonson Jihoon Son added a comment -

        I leave a comment at the RB.

        Show
        jihoonson Jihoon Son added a comment - I leave a comment at the RB.
        Hide
        jihoonson Jihoon Son added a comment -

        I'm reviewing the patch.

        Show
        jihoonson Jihoon Son added a comment - I'm reviewing the patch.
        Hide
        hyunsik Hyunsik Choi added a comment -

        I just submitted the patch to the reviewboard.
        https://reviews.apache.org/r/16495

        Show
        hyunsik Hyunsik Choi added a comment - I just submitted the patch to the reviewboard. https://reviews.apache.org/r/16495

          People

          • Assignee:
            hyunsik Hyunsik Choi
            Reporter:
            hyunsik Hyunsik Choi
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development