[ 
https://issues.apache.org/jira/browse/TAJO-1352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14633054#comment-14633054
 ] 

Hudson commented on TAJO-1352:
------------------------------

SUCCESS: Integrated in Tajo-master-build #752 (See 
[https://builds.apache.org/job/Tajo-master-build/752/])
TAJO-1352: Improve the join order algorithm to consider missed cases of 
associative join operators. (jihoon) (jihoonson: rev 
bedce3aa0ef3a3d337e7c054c9db0e3af2e15cf4)
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinEdge.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort_NoBroadcast.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java
* tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash_NoBroadcast.plan
* tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.3.result
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort_NoBroadcast.plan
* tajo-core/src/test/resources/results/TestUnionQuery/testUnion13.result
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash_NoBroadcast.plan
* tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.5.result
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort.plan
* tajo-core/src/test/resources/results/TestUnionQuery/testUnion12.result
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Hash.plan
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash_NoBroadcast.plan
* tajo-core/pom.xml
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Hash.plan
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort.plan
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort_NoBroadcast.plan
* tajo-core/src/test/resources/results/TestTPCH/testQ2FourJoins.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash_NoBroadcast.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraph.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderAlgorithm.java
* tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort.plan
* 
tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinedRelationsVertex.java
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testComplexJoinsWithCaseWhen.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithEmptyTable1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Sort.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Hash.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoinPredicationCaseByCase2.1.Hash.plan
* tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin6.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Sort_NoBroadcast.plan
* tajo-core/src/test/resources/results/TestJoinQuery/testWhereClauseJoin6.result
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoin.2.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort_NoBroadcast.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/RelationVertex.java
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Hash.plan
* tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll12.result
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash.plan
* 
tajo-core/src/test/resources/results/TestMultipleJoinTypes/testInnerAndOuterWithEmpty.1.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinAsterisk.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/queries/TestInnerJoinWithSubQuery/testBroadcastSubquery2.sql
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestOuterJoinQuery.java
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinWithEmptyTable.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinCoReferredEvals1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testOuterJoinAndCaseWhen1.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testInnerJoinAndCaseWhen.Sort_NoBroadcast.plan
* 
tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testTPCHQ2Join.Sort.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testLeftOuterJoin3.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Sort_NoBroadcast.plan
* tajo-common/src/main/java/org/apache/tajo/util/Pair.java
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinOnMultipleDatabases.Sort.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinWithEmptyTable1.Sort.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Sort.plan
* tajo-core/src/test/java/org/apache/tajo/querymaster/TestTaskStatusUpdate.java
* 
tajo-core/src/test/resources/results/TestSelectQuery/testExplainSelectPhysical.2.result
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin2.Hash.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinNode.java
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinVertex.java
* tajo-core/src/test/resources/results/TestTPCH/testTPCHQ5.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Sort.plan
* CHANGES
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinOrderingUtil.java
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual4.Sort.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinWithSubQuery/testFullOuterJoinWithEmptyIntermediateData.1.Sort.plan
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash_NoBroadcast.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/JoinSpec.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin3.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery2.Hash.plan
* tajo-core/src/test/resources/queries/TestOuterJoinQuery/testLeftOuterJoin2.sql
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithAsterisk1.Hash.plan
* tajo-core/src/test/resources/results/TestUnionQuery/testUnionAll13.result
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinAndCaseWhen.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Hash.plan
* 
tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin1.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testBroadcastSubquery.Sort.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition2.Hash.plan
* tajo-core/src/test/tpch/part.tbl
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testBroadcastTwoPartJoin.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Hash.plan
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestInnerJoinQuery.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testCrossJoinWithThetaJoinConditionInWhere.Sort.plan
* 
tajo-plan/src/main/java/org/apache/tajo/plan/visitor/BasicLogicalPlanVisitor.java
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoin1.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition4.Hash_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition1.Hash.plan
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraphContext.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testWhereClauseJoin5.Hash.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testComplexJoinCondition3.Sort_NoBroadcast.plan
* 
tajo-core/src/test/resources/results/TestInnerJoinWithSubQuery/testJoinWithMultipleJoinQual3.Hash.plan
* 
tajo-core/src/test/resources/results/TestOuterJoinQuery/testFullOuterJoinPredicationCaseByCase1.1.Hash_NoBroadcast.plan
* 
tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
* 
tajo-core/src/test/resources/results/TestInnerJoinQuery/testJoinWithMultipleJoinQual1.Sort_NoBroadcast.plan


> Improve the join order algorithm to consider missed cases of associative join 
> operators
> ---------------------------------------------------------------------------------------
>
>                 Key: TAJO-1352
>                 URL: https://issues.apache.org/jira/browse/TAJO-1352
>             Project: Tajo
>          Issue Type: Improvement
>          Components: planner/optimizer
>            Reporter: Jihoon Son
>            Assignee: Jihoon Son
>             Fix For: 0.11.0
>
>         Attachments: JoinGraph.png
>
>
> TAJO-1277 fixes a bug related to the associativity of join operators, but 
> there are still some missed cases that join operators are associative. This 
> work should include the cases described in the following links:
> * http://stackoverflow.com/questions/20022196/are-left-outer-joins-associative
> * https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to