You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by hyoungjun kim <ba...@gmail.com> on 2014/04/02 11:08:15 UTC

Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/
-----------------------------------------------------------

Review request for Tajo.


Bugs: TAJO-725
    https://issues.apache.org/jira/browse/TAJO-725


Repository: tajo


Description
-------

Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.


Diffs
-----

  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
  tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
  tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
  tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
  tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 

Diff: https://reviews.apache.org/r/19911/diff/


Testing
-------

mvn clean install and tested in real cluster tpch100.


Thanks,

hyoungjun kim


Re: Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/#review39508
-----------------------------------------------------------


Hi Hyoungjun.

Nice Job!
Thank you for your contribution.

I leaved some comments. If you fixed it, I'll push it.

Cheers
Jaehwa.



tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
<https://reviews.apache.org/r/19911/#comment71915>

    Could you remove it? I think that it was codes for testing.



tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
<https://reviews.apache.org/r/19911/#comment71916>

    I think that this is codes for testing too.



tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
<https://reviews.apache.org/r/19911/#comment71917>

    Please check the above comment.


- Jung JaeHwa


On April 2, 2014, 9:08 a.m., hyoungjun kim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19911/
> -----------------------------------------------------------
> 
> (Updated April 2, 2014, 9:08 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-725
>     https://issues.apache.org/jira/browse/TAJO-725
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.
> 
> 
> Diffs
> -----
> 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
>   tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
>   tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
>   tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 
> 
> Diff: https://reviews.apache.org/r/19911/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install and tested in real cluster tpch100.
> 
> 
> Thanks,
> 
> hyoungjun kim
> 
>


Re: Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

Posted by Hyunsik Choi <hy...@apache.org>.

> On April 5, 2014, 8:11 a.m., Jung JaeHwa wrote:
> > +1
> > 
> > I'm really appreciate to you.
> > It is very useful to Tajo.
> > 
> > I'll push it. :)

Hi JaeHwa,

please wait for pushing this patch. I'm still reviewing it.


- Hyunsik


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/#review39610
-----------------------------------------------------------


On April 5, 2014, 1:13 a.m., hyoungjun kim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19911/
> -----------------------------------------------------------
> 
> (Updated April 5, 2014, 1:13 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-725
>     https://issues.apache.org/jira/browse/TAJO-725
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.
> 
> 
> Diffs
> -----
> 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
>   tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
>   tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
>   tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 
> 
> Diff: https://reviews.apache.org/r/19911/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install and tested in real cluster tpch100.
> 
> 
> Thanks,
> 
> hyoungjun kim
> 
>


Re: Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

Posted by Jung JaeHwa <jh...@gruter.com>.

> On April 4, 2014, 11:11 p.m., Jung JaeHwa wrote:
> > +1
> > 
> > I'm really appreciate to you.
> > It is very useful to Tajo.
> > 
> > I'll push it. :)
> 
> Hyunsik Choi wrote:
>     Hi JaeHwa,
>     
>     please wait for pushing this patch. I'm still reviewing it.
> 
> Hyunsik Choi wrote:
>     My comment was too late. The patch was committed to only branch-0.8.0. Could you commit it to master too?

Sorry, Hyunsik.

I read your comments too late, and I also found unnecessary codes at the patch.
We need to update it by another issue.


- Jung


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/#review39610
-----------------------------------------------------------


On April 4, 2014, 4:13 p.m., hyoungjun kim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19911/
> -----------------------------------------------------------
> 
> (Updated April 4, 2014, 4:13 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-725
>     https://issues.apache.org/jira/browse/TAJO-725
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.
> 
> 
> Diffs
> -----
> 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
>   tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
>   tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
>   tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 
> 
> Diff: https://reviews.apache.org/r/19911/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install and tested in real cluster tpch100.
> 
> 
> Thanks,
> 
> hyoungjun kim
> 
>


Re: Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

Posted by Hyunsik Choi <hy...@apache.org>.

> On April 5, 2014, 8:11 a.m., Jung JaeHwa wrote:
> > +1
> > 
> > I'm really appreciate to you.
> > It is very useful to Tajo.
> > 
> > I'll push it. :)
> 
> Hyunsik Choi wrote:
>     Hi JaeHwa,
>     
>     please wait for pushing this patch. I'm still reviewing it.

My comment was too late. The patch was committed to only branch-0.8.0. Could you commit it to master too?


- Hyunsik


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/#review39610
-----------------------------------------------------------


On April 5, 2014, 1:13 a.m., hyoungjun kim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19911/
> -----------------------------------------------------------
> 
> (Updated April 5, 2014, 1:13 a.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-725
>     https://issues.apache.org/jira/browse/TAJO-725
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.
> 
> 
> Diffs
> -----
> 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
>   tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
>   tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
>   tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 
> 
> Diff: https://reviews.apache.org/r/19911/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install and tested in real cluster tpch100.
> 
> 
> Thanks,
> 
> hyoungjun kim
> 
>


Re: Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/#review39610
-----------------------------------------------------------

Ship it!


+1

I'm really appreciate to you.
It is very useful to Tajo.

I'll push it. :)

- Jung JaeHwa


On April 4, 2014, 4:13 p.m., hyoungjun kim wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19911/
> -----------------------------------------------------------
> 
> (Updated April 4, 2014, 4:13 p.m.)
> 
> 
> Review request for Tajo.
> 
> 
> Bugs: TAJO-725
>     https://issues.apache.org/jira/browse/TAJO-725
> 
> 
> Repository: tajo
> 
> 
> Description
> -------
> 
> Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.
> 
> 
> Diffs
> -----
> 
>   tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
>   tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
>   tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
>   tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
>   tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
>   tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
>   tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
>   tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
>   tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
>   tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
>   tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 
> 
> Diff: https://reviews.apache.org/r/19911/diff/
> 
> 
> Testing
> -------
> 
> mvn clean install and tested in real cluster tpch100.
> 
> 
> Thanks,
> 
> hyoungjun kim
> 
>


Re: Review Request 19911: TAJO-725: Broadcast JOIN should supports multiple tables

Posted by hyoungjun kim <ba...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19911/
-----------------------------------------------------------

(Updated April 4, 2014, 4:13 p.m.)


Review request for Tajo.


Changes
-------

Removed unused test code.


Bugs: TAJO-725
    https://issues.apache.org/jira/browse/TAJO-725


Repository: tajo


Description
-------

Currently implementation Tajo uses single table for broadcast join even if there are several small. Tajo should be supported this feature.


Diffs (updated)
-----

  tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b6f7f08 
  tajo-client/src/main/java/org/apache/tajo/client/TajoClient.java 9d7c4ee 
  tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSet.java d0a41c0 
  tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 12f725c 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/string/Concat_ws.java e512b60 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BroadcastJoinPlanVisitor.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java 9c28a80 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/RangePartitionAlgorithm.java 35876ba 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java 73de079 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/graph/SimpleDirectedGraph.java 586e643 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 0d607d3 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 17ce4af 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java 35c8f6f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java 3875b6d 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java 9f576a7 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftAntiJoinExec.java d7437c2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java 9afe8e6 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java 842c2e2 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java a59cc2f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCache.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheKey.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java 28015d5 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java b0c0614 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/LazyTaskScheduler.java 43e6493 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/event/FragmentScheduleEvent.java 10182a4 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java 39e2177 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnit.java c4f86fb 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/QueryUnitAttempt.java 555b09f 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java b2adaa4 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b3aefbe 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java 92762c9 
  tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java d74e0df 
  tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp 4dfc18a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/QueryTestCaseBase.java 784fea5 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java e24106a 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java 5eb8af2 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 19591ea 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/util/TestTupleCache.java PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java 869d199 
  tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/master/querymaster/TestQueryUnitStatusUpdate.java fe8c070 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/customer_large/customer.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/dataset/TestJoinBroadcast/lineitem_large/lineitem.tbl PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_customer_large_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/create_lineitem_large_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table1_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/oj_table2_ddl.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastBasicJoin.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastSubquery2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testBroadcastTwoPartJoin.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoin.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinAndCaseWhen.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithAsterisk4.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testCrossJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testInnerJoinWithEmptyTable.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvals1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testJoinOnMultipleDatabases.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testOuterJoinAndCaseWhen1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testTPCHQ2Join.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin1.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin2.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin3.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin4.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin5.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinBroadcast/testWhereClauseJoin6.sql PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/queries/TestNetTypes/testJoin.sql a163c4f 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastBasicJoin.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastSubquery2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testBroadcastTwoPartJoin.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoin.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinAndCaseWhen.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithAsterisk4.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testCrossJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testFullOuterJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testInnerJoinWithEmptyTable.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvals1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testJoinOnMultipleDatabases.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithConstantExpr3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testLeftOuterJoinWithEmptyTable4.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testOuterJoinAndCaseWhen1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testRightOuterJoinWithEmptyTable1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testTPCHQ2Join.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin1.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin2.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin3.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin4.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestJoinBroadcast/testWhereClauseJoin5.result PRE-CREATION 
  tajo-core/tajo-core-backend/src/test/resources/results/TestNetTypes/testJoin.result 9d2cdf1 
  tajo-core/tajo-core-backend/src/test/resources/results/TestUnionQuery/testUnion1.result 3b4dcf4 
  tajo-core/tajo-core-backend/src/test/tpch/orders.tbl 77cbcc0 
  tajo-storage/src/main/java/org/apache/tajo/storage/fragment/FragmentConvertor.java 3bfe96f 
  tajo-storage/src/main/java/org/apache/tajo/storage/parquet/TajoRecordMaterializer.java f099d04 

Diff: https://reviews.apache.org/r/19911/diff/


Testing
-------

mvn clean install and tested in real cluster tpch100.


Thanks,

hyoungjun kim