Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into index_support
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/8ec099c8 Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/8ec099c8 Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/8ec099c8 Branch: refs/heads/index_support Commit: 8ec099c8d048cbc741d74b329619a899dca8c04e Parents: 4d01fca 03294e1 Author: Jihoon Son <[email protected]> Authored: Sat May 30 13:04:47 2015 +0900 Committer: Jihoon Son <[email protected]> Committed: Sat May 30 13:04:47 2015 +0900 ---------------------------------------------------------------------- CHANGES | 26 +- .../apache/tajo/client/SessionConnection.java | 14 + .../main/java/org/apache/tajo/SessionVars.java | 3 + .../java/org/apache/tajo/conf/TajoConf.java | 14 +- tajo-common/src/main/proto/tajo_protos.proto | 6 + tajo-core/pom.xml | 1 + .../BroadcastJoinMarkCandidateVisitor.java | 72 ---- .../planner/BroadcastJoinPlanVisitor.java | 60 ---- .../tajo/engine/planner/global/DataChannel.java | 4 + .../engine/planner/global/ExecutionBlock.java | 117 ++++++- .../planner/global/ExecutionBlockCursor.java | 101 +++--- .../engine/planner/global/ExecutionQueue.java | 43 +++ .../engine/planner/global/GlobalPlanner.java | 263 +------------- .../tajo/engine/planner/global/MasterPlan.java | 25 +- .../planner/global/ParallelExecutionQueue.java | 126 +++++++ .../global/builder/DistinctGroupbyBuilder.java | 9 +- .../BaseGlobalPlanRewriteRuleProvider.java | 6 +- .../rewriter/GlobalPlanRewriteEngine.java | 5 +- .../global/rewriter/GlobalPlanRewriteRule.java | 9 +- .../rewriter/rules/BroadcastJoinRule.java | 348 +++++++++++++++++++ .../rules/GlobalPlanEqualityTester.java | 6 +- .../rewriter/rules/GlobalPlanRewriteUtil.java | 216 ++++++++++++ .../planner/physical/CommonHashJoinExec.java | 13 + .../DistinctGroupbyThirdAggregationExec.java | 2 +- .../apache/tajo/engine/utils/ThreadUtil.java | 149 -------- .../org/apache/tajo/ha/HdfsServiceTracker.java | 13 +- .../ExplainGlobalPlanPreprocessorForTest.java | 3 +- .../NonForwardQueryResultSystemScanner.java | 5 +- .../apache/tajo/master/exec/QueryExecutor.java | 2 +- .../tajo/master/rm/TajoResourceTracker.java | 9 + .../apache/tajo/master/rm/WorkerResource.java | 16 +- .../tajo/querymaster/DefaultTaskScheduler.java | 2 +- .../java/org/apache/tajo/querymaster/Query.java | 89 +++-- .../tajo/querymaster/QueryMasterTask.java | 2 +- .../apache/tajo/querymaster/Repartitioner.java | 62 +--- .../java/org/apache/tajo/querymaster/Stage.java | 7 +- .../resource/DefaultResourceCalculator.java | 109 ++++++ .../org/apache/tajo/resource/NodeResource.java | 188 ++++++++++ .../org/apache/tajo/resource/NodeResources.java | 195 +++++++++++ .../tajo/resource/ResourceCalculator.java | 169 +++++++++ .../apache/tajo/worker/NodeResourceManager.java | 148 ++++++++ .../apache/tajo/worker/NodeStatusUpdater.java | 274 +++++++++++++++ .../tajo/worker/WorkerHeartbeatService.java | 1 + .../worker/event/NodeResourceAllocateEvent.java | 46 +++ .../event/NodeResourceDeallocateEvent.java | 40 +++ .../worker/event/NodeResourceManagerEvent.java | 34 ++ .../tajo/worker/event/NodeStatusEvent.java | 40 +++ .../tajo/ws/rs/resources/QueryResource.java | 45 +-- .../ws/rs/resources/QueryResultResource.java | 2 +- .../main/proto/ResourceTrackerProtocol.proto | 27 ++ .../src/main/proto/TajoWorkerProtocol.proto | 16 + .../java/org/apache/tajo/QueryTestCaseBase.java | 16 +- .../org/apache/tajo/TajoTestingCluster.java | 10 +- .../org/apache/tajo/benchmark/TestTPCH.java | 25 +- .../engine/planner/TestQueryValidation.java | 17 +- .../tajo/engine/query/TestGroupByQuery.java | 6 +- .../engine/query/TestInnerJoinWithSubQuery.java | 7 + .../tajo/engine/query/TestOuterJoinQuery.java | 20 +- .../apache/tajo/engine/query/TestSortQuery.java | 7 + .../tajo/engine/query/TestUnionQuery.java | 13 + .../tajo/master/TestExecutionBlockCursor.java | 6 +- .../apache/tajo/master/TestGlobalPlanner.java | 347 ------------------ .../apache/tajo/querymaster/TestKillQuery.java | 4 +- .../org/apache/tajo/resource/TestResources.java | 48 +++ .../tajo/worker/MockNodeStatusUpdater.java | 105 ++++++ .../tajo/worker/TestNodeResourceManager.java | 235 +++++++++++++ .../tajo/worker/TestNodeStatusUpdater.java | 115 ++++++ .../tajo/ws/rs/resources/TestQueryResource.java | 56 ++- .../rs/resources/TestQueryResultResource.java | 122 +++++-- .../testBroadcastTwoPartJoin.sql | 2 +- .../testThetaJoinKeyPairs.sql | 20 ++ .../testSubQuerySortAfterGroupMultiBlocks.sql | 5 + .../resources/queries/TestTPCH/testTPCHQ5.sql | 24 ++ .../TestUnionQuery/testComplexUnion1.sql | 27 ++ .../TestUnionQuery/testComplexUnion2.sql | 35 ++ .../queries/default/complex_union_1.sql | 29 -- .../queries/default/complex_union_2.sql | 35 -- .../testBroadcastTwoPartJoin.Hash.plan | 135 +++---- ...stBroadcastTwoPartJoin.Hash_NoBroadcast.plan | 46 +-- .../testBroadcastTwoPartJoin.Sort.plan | 135 +++---- ...stBroadcastTwoPartJoin.Sort_NoBroadcast.plan | 46 +-- .../testComplexJoinCondition1.Hash.plan | 5 +- .../testComplexJoinCondition1.Sort.plan | 5 +- .../testComplexJoinCondition2.Hash.plan | 5 +- .../testComplexJoinCondition2.Sort.plan | 5 +- .../testComplexJoinCondition3.Hash.plan | 5 +- .../testComplexJoinCondition3.Sort.plan | 5 +- .../testComplexJoinCondition4.Hash.plan | 5 +- .../testComplexJoinCondition4.Sort.plan | 5 +- .../testCrossJoin.1.Hash.plan | 7 +- .../testCrossJoin.1.Sort.plan | 7 +- .../testCrossJoin.2.Hash.plan | 1 - .../testCrossJoin.2.Sort.plan | 1 - .../testCrossJoin.3.Hash.plan | 3 +- .../testCrossJoin.3.Sort.plan | 3 +- .../testCrossJoin.4.Hash.plan | 3 +- .../testCrossJoin.4.Sort.plan | 3 +- .../testCrossJoin.5.Hash.plan | 7 +- .../testCrossJoin.5.Sort.plan | 7 +- .../testCrossJoinAndCaseWhen.Hash.plan | 5 +- .../testCrossJoinAndCaseWhen.Sort.plan | 5 +- .../testCrossJoinWithAsterisk1.Hash.plan | 5 +- .../testCrossJoinWithAsterisk1.Sort.plan | 5 +- .../testCrossJoinWithAsterisk2.Hash.plan | 7 +- .../testCrossJoinWithAsterisk2.Sort.plan | 7 +- .../testCrossJoinWithAsterisk3.Hash.plan | 7 +- .../testCrossJoinWithAsterisk3.Sort.plan | 7 +- .../testCrossJoinWithAsterisk4.Hash.plan | 7 +- .../testCrossJoinWithAsterisk4.Sort.plan | 7 +- .../testCrossJoinWithEmptyTable1.Hash.plan | 5 +- .../testCrossJoinWithEmptyTable1.Sort.plan | 5 +- ...sJoinWithThetaJoinConditionInWhere.Hash.plan | 1 - ...sJoinWithThetaJoinConditionInWhere.Sort.plan | 1 - .../testDifferentTypesJoinCondition.Hash.plan | 1 - .../testDifferentTypesJoinCondition.Sort.plan | 1 - .../testInnerJoinAndCaseWhen.Hash.plan | 5 +- .../testInnerJoinAndCaseWhen.Sort.plan | 5 +- .../testInnerJoinWithEmptyTable.Hash.plan | 5 +- .../testInnerJoinWithEmptyTable.Sort.plan | 5 +- ...rJoinWithThetaJoinConditionInWhere.Hash.plan | 3 +- ...rJoinWithThetaJoinConditionInWhere.Sort.plan | 3 +- .../testJoinAsterisk.Hash.plan | 1 - .../testJoinAsterisk.Sort.plan | 1 - .../testJoinCoReferredEvals1.Hash.plan | 5 +- .../testJoinCoReferredEvals1.Sort.plan | 5 +- ...tJoinCoReferredEvalsWithSameExprs1.Hash.plan | 7 +- ...tJoinCoReferredEvalsWithSameExprs1.Sort.plan | 7 +- ...tJoinCoReferredEvalsWithSameExprs2.Hash.plan | 11 +- ...tJoinCoReferredEvalsWithSameExprs2.Sort.plan | 11 +- .../testJoinOnMultipleDatabases.Hash.plan | 135 +++---- ...oinOnMultipleDatabases.Hash_NoBroadcast.plan | 46 +-- .../testJoinOnMultipleDatabases.Sort.plan | 135 +++---- ...oinOnMultipleDatabases.Sort_NoBroadcast.plan | 46 +-- .../testJoinWithMultipleJoinQual1.Hash.plan | 137 +++----- ...nWithMultipleJoinQual1.Hash_NoBroadcast.plan | 46 +-- .../testJoinWithMultipleJoinQual1.Sort.plan | 137 +++----- ...nWithMultipleJoinQual1.Sort_NoBroadcast.plan | 46 +-- .../testJoinWithOrPredicates.Hash.plan | 7 +- .../testJoinWithOrPredicates.Sort.plan | 7 +- .../testNaturalJoin.Hash.plan | 7 +- .../testNaturalJoin.Sort.plan | 7 +- .../TestInnerJoinQuery/testTPCHQ2Join.Hash.plan | 137 +++----- .../testTPCHQ2Join.Hash_NoBroadcast.plan | 46 +-- .../TestInnerJoinQuery/testTPCHQ2Join.Sort.plan | 137 +++----- .../testTPCHQ2Join.Sort_NoBroadcast.plan | 46 +-- .../testWhereClauseJoin1.Hash.plan | 5 +- .../testWhereClauseJoin1.Sort.plan | 5 +- .../testWhereClauseJoin2.Hash.plan | 5 +- .../testWhereClauseJoin2.Sort.plan | 5 +- .../testWhereClauseJoin3.Hash.plan | 5 +- .../testWhereClauseJoin3.Sort.plan | 5 +- .../testWhereClauseJoin4.Hash.plan | 7 +- .../testWhereClauseJoin4.Sort.plan | 7 +- .../testWhereClauseJoin5.Hash.plan | 33 +- .../testWhereClauseJoin5.Sort.plan | 33 +- .../testWhereClauseJoin6.Hash.plan | 37 +- .../testWhereClauseJoin6.Sort.plan | 37 +- .../testBroadcastSubquery.Hash.plan | 118 ++----- .../testBroadcastSubquery.Sort.plan | 118 ++----- .../testBroadcastSubquery2.Hash.plan | 180 ++++------ ...testBroadcastSubquery2.Hash_NoBroadcast.plan | 48 +-- .../testBroadcastSubquery2.Sort.plan | 180 ++++------ ...testBroadcastSubquery2.Sort_NoBroadcast.plan | 48 +-- .../testComplexJoinCondition5.Hash.plan | 69 ++-- .../testComplexJoinCondition5.Sort.plan | 69 ++-- .../testComplexJoinCondition6.Hash.plan | 94 ++--- .../testComplexJoinCondition6.Sort.plan | 94 ++--- .../testComplexJoinCondition7.Hash.plan | 94 ++--- .../testComplexJoinCondition7.Sort.plan | 94 ++--- .../testJoinWithMultipleJoinQual2.Hash.plan | 88 ++--- .../testJoinWithMultipleJoinQual2.Sort.plan | 88 ++--- .../testJoinWithMultipleJoinQual3.Hash.plan | 109 ++---- ...nWithMultipleJoinQual3.Hash_NoBroadcast.plan | 48 +-- .../testJoinWithMultipleJoinQual3.Sort.plan | 109 ++---- ...nWithMultipleJoinQual3.Sort_NoBroadcast.plan | 48 +-- .../testJoinWithMultipleJoinQual4.Hash.plan | 109 ++---- ...nWithMultipleJoinQual4.Hash_NoBroadcast.plan | 48 +-- .../testJoinWithMultipleJoinQual4.Sort.plan | 109 ++---- ...nWithMultipleJoinQual4.Sort_NoBroadcast.plan | 48 +-- .../testThetaJoinKeyPairs.Hash.plan | 142 ++++++++ .../testThetaJoinKeyPairs.Hash_NoBroadcast.plan | 196 +++++++++++ .../testThetaJoinKeyPairs.Sort.plan | 142 ++++++++ .../testThetaJoinKeyPairs.Sort_NoBroadcast.plan | 196 +++++++++++ .../testThetaJoinKeyPairs.result | 27 ++ .../testComplexJoinsWithCaseWhen.Hash.plan | 33 +- .../testComplexJoinsWithCaseWhen.Sort.plan | 33 +- .../testComplexJoinsWithCaseWhen2.Hash.plan | 91 ++--- .../testComplexJoinsWithCaseWhen2.Sort.plan | 91 ++--- .../testInnerAndOuterWithEmpty.1.Hash.plan | 17 +- .../testInnerAndOuterWithEmpty.1.Sort.plan | 17 +- .../testJoinWithMultipleJoinTypes.Hash.plan | 108 ++---- .../testJoinWithMultipleJoinTypes.Sort.plan | 108 ++---- .../testFullOuterJoin1.Hash.plan | 58 +++- .../testFullOuterJoin1.Sort.plan | 58 +++- ...lOuterJoinPredicationCaseByCase1.1.Hash.plan | 153 ++++++++ ...edicationCaseByCase1.1.Hash_NoBroadcast.plan | 153 ++++++++ ...lOuterJoinPredicationCaseByCase1.1.Sort.plan | 153 ++++++++ ...edicationCaseByCase1.1.Sort_NoBroadcast.plan | 153 ++++++++ ...FullOuterJoinPredicationCaseByCase1.1.result | 9 + .../testFullOuterJoinWithEmptyTable1.Hash.plan | 58 +++- .../testFullOuterJoinWithEmptyTable1.Sort.plan | 58 +++- ...testJoinFilterOfRowPreservedTable1.Hash.plan | 4 +- ...testJoinFilterOfRowPreservedTable1.Sort.plan | 4 +- .../testLeftOuterJoin1.Hash.plan | 4 +- .../testLeftOuterJoin1.Sort.plan | 4 +- .../testLeftOuterJoin2.Hash.plan | 14 +- .../testLeftOuterJoin2.Sort.plan | 14 +- .../testLeftOuterJoin3.Hash.plan | 22 +- .../testLeftOuterJoin3.Sort.plan | 22 +- ...tOuterJoinPredicationCaseByCase1.1.Hash.plan | 14 +- ...tOuterJoinPredicationCaseByCase1.1.Sort.plan | 14 +- ...tOuterJoinPredicationCaseByCase2.1.Hash.plan | 18 +- ...tOuterJoinPredicationCaseByCase2.1.Sort.plan | 18 +- ...uterJoinPredicationCaseByCase2_1.1.Hash.plan | 21 +- ...uterJoinPredicationCaseByCase2_1.1.Sort.plan | 21 +- ...tOuterJoinPredicationCaseByCase3.1.Hash.plan | 14 +- ...tOuterJoinPredicationCaseByCase3.1.Sort.plan | 14 +- ...tOuterJoinPredicationCaseByCase4.1.Hash.plan | 14 +- ...tOuterJoinPredicationCaseByCase4.1.Sort.plan | 14 +- ...tOuterJoinPredicationCaseByCase5.1.Hash.plan | 14 +- ...tOuterJoinPredicationCaseByCase5.1.Sort.plan | 14 +- ...tOuterJoinPredicationCaseByCase6.1.Hash.plan | 14 +- ...tOuterJoinPredicationCaseByCase6.1.Sort.plan | 14 +- ...testLeftOuterJoinWithConstantExpr1.Hash.plan | 4 +- ...testLeftOuterJoinWithConstantExpr1.Sort.plan | 4 +- .../testLeftOuterJoinWithEmptyTable1.Hash.plan | 4 +- .../testLeftOuterJoinWithEmptyTable1.Sort.plan | 4 +- .../testLeftOuterJoinWithEmptyTable2.Hash.plan | 8 +- .../testLeftOuterJoinWithEmptyTable2.Sort.plan | 8 +- .../testLeftOuterJoinWithEmptyTable3.Hash.plan | 12 +- .../testLeftOuterJoinWithEmptyTable3.Sort.plan | 12 +- .../testLeftOuterJoinWithEmptyTable4.Hash.plan | 38 +- ...terJoinWithEmptyTable4.Hash_NoBroadcast.plan | 32 +- .../testLeftOuterJoinWithEmptyTable4.Sort.plan | 38 +- ...terJoinWithEmptyTable4.Sort_NoBroadcast.plan | 32 +- .../testLeftOuterJoinWithEmptyTable5.Hash.plan | 8 +- .../testLeftOuterJoinWithEmptyTable5.Sort.plan | 8 +- .../testLeftOuterJoinWithNull1.Hash.plan | 4 +- .../testLeftOuterJoinWithNull1.Sort.plan | 4 +- .../testLeftOuterJoinWithNull2.Hash.plan | 4 +- .../testLeftOuterJoinWithNull2.Sort.plan | 4 +- .../testLeftOuterJoinWithNull3.Hash.plan | 4 +- .../testLeftOuterJoinWithNull3.Sort.plan | 4 +- ...leBroadcastDataFileWithZeroLength2.Hash.plan | 14 +- ...leBroadcastDataFileWithZeroLength2.Sort.plan | 14 +- .../testOuterJoinAndCaseWhen1.Hash.plan | 30 +- .../testOuterJoinAndCaseWhen1.Sort.plan | 30 +- .../testRightOuterJoin1.Hash.plan | 4 +- .../testRightOuterJoin1.Sort.plan | 4 +- ...tOuterJoinPredicationCaseByCase1.1.Hash.plan | 101 ++++++ ...edicationCaseByCase1.1.Hash_NoBroadcast.plan | 128 +++++++ ...tOuterJoinPredicationCaseByCase1.1.Sort.plan | 101 ++++++ ...edicationCaseByCase1.1.Sort_NoBroadcast.plan | 128 +++++++ ...ightOuterJoinPredicationCaseByCase1.1.result | 4 + ...tOuterJoinPredicationCaseByCase2.1.Hash.plan | 76 ++++ ...edicationCaseByCase2.1.Hash_NoBroadcast.plan | 132 +++++++ ...tOuterJoinPredicationCaseByCase2.1.Sort.plan | 76 ++++ ...edicationCaseByCase2.1.Sort_NoBroadcast.plan | 132 +++++++ ...ightOuterJoinPredicationCaseByCase2.1.result | 4 + ...tOuterJoinPredicationCaseByCase3.1.Hash.plan | 101 ++++++ ...edicationCaseByCase3.1.Hash_NoBroadcast.plan | 128 +++++++ ...tOuterJoinPredicationCaseByCase3.1.Sort.plan | 101 ++++++ ...edicationCaseByCase3.1.Sort_NoBroadcast.plan | 128 +++++++ ...ightOuterJoinPredicationCaseByCase3.1.result | 4 + .../testRightOuterJoinWithEmptyTable1.Hash.plan | 4 +- .../testRightOuterJoinWithEmptyTable1.Sort.plan | 4 +- .../testJoinWithDifferentShuffleKey.1.Hash.plan | 36 +- ...hDifferentShuffleKey.1.Hash_NoBroadcast.plan | 36 +- .../testJoinWithDifferentShuffleKey.1.Sort.plan | 36 +- ...hDifferentShuffleKey.1.Sort_NoBroadcast.plan | 36 +- ...testLeftOuterJoinWithConstantExpr2.Hash.plan | 69 ++-- ...testLeftOuterJoinWithConstantExpr2.Sort.plan | 69 ++-- ...tLeftOuterJoinWithEmptySubquery1.1.Hash.plan | 96 ++--- ...tLeftOuterJoinWithEmptySubquery1.1.Sort.plan | 96 ++--- ...tLeftOuterJoinWithEmptySubquery2.1.Hash.plan | 88 ++--- ...tLeftOuterJoinWithEmptySubquery2.1.Sort.plan | 88 ++--- .../testSubQuerySortAfterGroupMultiBlocks.plan | 112 ++++++ ...testSubQuerySortAfterGroupMultiBlocks.result | 5 + .../results/TestTPCH/testQ1OrderBy.plan | 88 +++++ .../results/TestTPCH/testQ1OrderBy.result | 2 +- .../results/TestTPCH/testQ2FourJoins.plan | 228 ++++++++++++ .../results/TestTPCH/testQ2FourJoins.result | 2 +- .../results/TestTPCH/testTPCH14Expr.plan | 119 +++++++ .../results/TestTPCH/testTPCH14Expr.result | 2 +- .../resources/results/TestTPCH/testTPCHQ5.plan | 332 ++++++++++++++++++ .../results/TestTPCH/testTPCHQ5.result | 2 + .../TestTajoCli/testHelpSessionVars.result | 1 + .../TestUnionQuery/testComplexUnion1.plan | 80 +++++ .../TestUnionQuery/testComplexUnion1.result | 6 + .../TestUnionQuery/testComplexUnion2.plan | 116 +++++++ .../TestUnionQuery/testComplexUnion2.result | 7 + .../sphinx/table_management/table_overview.rst | 29 +- .../org/apache/tajo/jdbc/JdbcConnection.java | 6 +- .../org/apache/tajo/plan/LogicalPlanner.java | 6 + .../plan/expr/AggregationFunctionCallEval.java | 63 ++-- .../function/python/PythonScriptEngine.java | 17 +- .../plan/function/python/TajoScriptEngine.java | 13 +- .../tajo/plan/logical/CreateTableNode.java | 5 + .../org/apache/tajo/plan/logical/JoinNode.java | 22 +- .../plan/rewrite/rules/FilterPushDownRule.java | 1 + .../tajo/plan/serder/EvalNodeDeserializer.java | 14 +- .../tajo/plan/serder/EvalNodeSerializer.java | 4 +- .../plan/serder/LogicalNodeDeserializer.java | 5 - .../tajo/plan/serder/LogicalNodeSerializer.java | 18 +- tajo-plan/src/main/proto/Plan.proto | 12 +- .../java/org/apache/tajo/storage/DiskUtil.java | 4 +- 306 files changed, 9531 insertions(+), 4912 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/CHANGES ---------------------------------------------------------------------- diff --cc CHANGES index bad7753,85c28ce..9f6795d --- a/CHANGES +++ b/CHANGES @@@ -136,10 -150,14 +150,18 @@@ Release 0.11.0 - unrelease BUG FIXES + TAJO-1608: Fix test failure in index_support branch. (jihoon) + + TAJO-1594: Catalog schema is invalid for some databases. (jihoon) + + TAJO-1630: Test failure after TAJO-1130. (jihoon) + + TAJO-1623: INSERT INTO with wrong target columns causes NPE. (hyunsik) + + TAJO-1621: Compilation error with hadoop 2.7.0. (jinho) + + TAJO-1619: JDBC program is stuck after closing. (jihoon) + TAJO-1620: random() in an SQL should generate RANDOM numbers. (Contributed by Jongyoung Park, Committed by jihoon) http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-common/src/main/java/org/apache/tajo/SessionVars.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java ---------------------------------------------------------------------- diff --cc tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java index c149f2f,89e887a..bb2d9ad --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java @@@ -1619,44 -1408,5 +1417,19 @@@ public class GlobalPlanner return node; } + + @Override + public LogicalNode visitCreateIndex(GlobalPlanContext context, LogicalPlan plan, LogicalPlan.QueryBlock queryBlock, + CreateIndexNode node, Stack<LogicalNode> stack) throws PlanningException { + LogicalNode child = super.visitCreateIndex(context, plan, queryBlock, node, stack); + + // Don't separate execution block. CreateIndex is pushed to the first execution block. + ExecutionBlock childBlock = context.execBlockMap.remove(child.getPID()); + node.setChild(childBlock.getPlan()); + childBlock.setPlan(node); + context.execBlockMap.put(node.getPID(), childBlock); + + return node; + } } - - @SuppressWarnings("unused") - private static class ConsecutiveUnionFinder extends BasicLogicalPlanVisitor<List<UnionNode>, LogicalNode> { - @Override - public LogicalNode visitUnion(List<UnionNode> unionNodeList, LogicalPlan plan, LogicalPlan.QueryBlock queryBlock, - UnionNode node, Stack<LogicalNode> stack) - throws PlanningException { - if (node.getType() == NodeType.UNION) { - unionNodeList.add(node); - } - - stack.push(node); - TableSubQueryNode leftSubQuery = node.getLeftChild(); - TableSubQueryNode rightSubQuery = node.getRightChild(); - if (leftSubQuery.getSubQuery().getType() == NodeType.UNION) { - visit(unionNodeList, plan, queryBlock, leftSubQuery, stack); - } - if (rightSubQuery.getSubQuery().getType() == NodeType.UNION) { - visit(unionNodeList, plan, queryBlock, rightSubQuery, stack); - } - stack.pop(); - - return node; - } - } } http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java ---------------------------------------------------------------------- diff --cc tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java index 8441922,2809a70..0737422 --- a/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java +++ b/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java @@@ -362,17 -361,9 +362,17 @@@ public class QueryMasterTask extends Co tableDescMap.put(scanNode.getCanonicalName(), scanNode.getTableDesc()); } } + + scanNodes = PlannerUtil.findAllNodes(block.getRoot(), NodeType.INDEX_SCAN); + if (scanNodes != null) { + for (LogicalNode eachScanNode : scanNodes) { + ScanNode scanNode = (ScanNode) eachScanNode; + tableDescMap.put(scanNode.getCanonicalName(), scanNode.getTableDesc()); + } + } } MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan); - queryMasterContext.getGlobalPlanner().build(masterPlan); + queryMasterContext.getGlobalPlanner().build(queryContext, masterPlan); query = new Query(queryTaskContext, queryId, querySubmitTime, "", queryTaskContext.getEventHandler(), masterPlan); http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/8ec099c8/tajo-plan/src/main/proto/Plan.proto ----------------------------------------------------------------------
