Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-9132 CBO: Calcite Operator To Hive Operator (Calcite Return Path)
  3. HIVE-11206

CBO (Calcite Return Path): Join translation should update all ExprNode recursively

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0
    • CBO
    • None

    Attachments

      1. HIVE-11206.01.patch
        3 kB
        jcamachorodriguez
      2. HIVE-11206.patch
        3 kB
        jcamachorodriguez

      Activity

        hiveqa Hive QA added a comment -

        Overall: +1 all checks pass

        Here are the results of testing the latest attachment:
        https://issues.apache.org/jira/secure/attachment/12744179/HIVE-11206.patch

        SUCCESS: +1 9136 tests passed

        Test results: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4538/testReport
        Console output: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4538/console
        Test logs: http://ec2-174-129-184-35.compute-1.amazonaws.com/logs/PreCommit-HIVE-TRUNK-Build-4538/

        Messages:

        Executing org.apache.hive.ptest.execution.PrepPhase
        Executing org.apache.hive.ptest.execution.ExecutionPhase
        Executing org.apache.hive.ptest.execution.ReportingPhase
        

        This message is automatically generated.

        ATTACHMENT ID: 12744179 - PreCommit-HIVE-TRUNK-Build

        hiveqa Hive QA added a comment - Overall : +1 all checks pass Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12744179/HIVE-11206.patch SUCCESS: +1 9136 tests passed Test results: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4538/testReport Console output: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4538/console Test logs: http://ec2-174-129-184-35.compute-1.amazonaws.com/logs/PreCommit-HIVE-TRUNK-Build-4538/ Messages: Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase This message is automatically generated. ATTACHMENT ID: 12744179 - PreCommit-HIVE-TRUNK-Build
        jcamacho Jesús Camacho Rodríguez added a comment - - edited

        ashutoshc, could you take a look? Thanks

        jcamacho Jesús Camacho Rodríguez added a comment - - edited ashutoshc , could you take a look? Thanks

        Are these filters in on clause of join which are not on joining columns? Can you add a comment whats going on there?
        Also, I wonder if it would be possible to refactor some pieces of SemanticAnalyzer::genJoinOperatorChildren() so that we have identical logic on old path and new path ?

        ashutoshc Ashutosh Chauhan added a comment - Are these filters in on clause of join which are not on joining columns? Can you add a comment whats going on there? Also, I wonder if it would be possible to refactor some pieces of SemanticAnalyzer::genJoinOperatorChildren() so that we have identical logic on old path and new path ?
        jcamacho Jesús Camacho Rodríguez added a comment - - edited

        ashutoshc, I added some additional comments to the patch.

        About the pieces from SemanticAnalyzer, the problem is that here we are doing something very specific of the return path: the predicates in the join come expressed in terms of the input/output columns, but the filters which are not on joining columns need to be expressed wrt to the output of the RS. In SemanticAnalyzer, we do not need to worry about this. Plus in addition, some of the data structures are generated from the QBJoinTree (e.g. filterMap), while here we need to generate them from the Calcite plan. Please, let me know if you had something specific in mind.

        jcamacho Jesús Camacho Rodríguez added a comment - - edited ashutoshc , I added some additional comments to the patch. About the pieces from SemanticAnalyzer, the problem is that here we are doing something very specific of the return path: the predicates in the join come expressed in terms of the input/output columns, but the filters which are not on joining columns need to be expressed wrt to the output of the RS. In SemanticAnalyzer, we do not need to worry about this. Plus in addition, some of the data structures are generated from the QBJoinTree (e.g. filterMap), while here we need to generate them from the Calcite plan. Please, let me know if you had something specific in mind.

        ok.. +1

        ashutoshc Ashutosh Chauhan added a comment - ok.. +1

        Pushed to master. Thanks, Jesus!

        ashutoshc Ashutosh Chauhan added a comment - Pushed to master. Thanks, Jesus!

        People

          jcamacho Jesús Camacho Rodríguez
          jcamacho Jesús Camacho Rodríguez
          Votes:
          0 Vote for this issue
          Watchers:
          0 Start watching this issue

          Dates

            Created:
            Updated:
            Resolved: