You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2014/10/16 08:03:25 UTC

[4/4] git commit: Merge branch 'master' of http://git-wip-us.apache.org/repos/asf/tajo into index_support

Merge branch 'master' of http://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/fbb95ec6
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/fbb95ec6
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/fbb95ec6

Branch: refs/heads/index_support
Commit: fbb95ec62fd52d648e60424e249ffc390ad1ee39
Parents: f98b78c d56737b
Author: Jihoon Son <ji...@apache.org>
Authored: Thu Oct 16 15:02:34 2014 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Thu Oct 16 15:02:34 2014 +0900

----------------------------------------------------------------------
 CHANGES                                         |  19 ++
 .../main/java/org/apache/tajo/DataTypeUtil.java | 181 ++++++++++++++
 .../org/apache/tajo/catalog/CatalogUtil.java    | 232 ++++++++++--------
 .../org/apache/tajo/catalog/FunctionDesc.java   | 167 ++++++-------
 .../exception/NoSuchFunctionException.java      |   6 +-
 .../apache/tajo/catalog/function/Function.java  |  65 -----
 .../tajo/catalog/json/CatalogGsonHelper.java    |   2 +-
 .../tajo/catalog/json/FunctionAdapter.java      |   2 +-
 .../tajo/function/ClassBaseInvocationDesc.java  |  71 ++++++
 .../java/org/apache/tajo/function/Function.java |  66 +++++
 .../tajo/function/FunctionCollection.java       |  29 +++
 .../tajo/function/FunctionInvocation.java       | 154 ++++++++++++
 .../apache/tajo/function/FunctionSignature.java | 141 +++++++++++
 .../tajo/function/FunctionSupplement.java       | 113 +++++++++
 .../org/apache/tajo/function/FunctionUtil.java  |  56 +++++
 .../apache/tajo/function/ScalarFunction.java    |  44 ++++
 .../function/StaticMethodInvocationDesc.java    | 135 +++++++++++
 .../src/main/proto/CatalogProtos.proto          |  75 ++++--
 .../apache/tajo/catalog/TestCatalogUtil.java    |  14 +-
 .../apache/tajo/catalog/TestFunctionDesc.java   |   6 +-
 .../org/apache/tajo/catalog/CatalogServer.java  |  96 ++++++--
 .../org/apache/tajo/catalog/TestCatalog.java    |  18 +-
 .../apache/tajo/cli/DescFunctionCommand.java    |  38 +--
 .../apache/tajo/json/ClassNameSerializer.java   |   3 +-
 .../java/org/apache/tajo/util/ClassUtil.java    | 201 ++++++++++++++++
 .../main/java/org/apache/tajo/util/TUtil.java   |   4 +-
 .../tajo/engine/codegen/CaseWhenEmitter.java    |  27 +--
 .../tajo/engine/codegen/EvalCodeGenerator.java  |  51 ++--
 .../codegen/LegacyFunctionBindingEmitter.java   |  75 ++++++
 .../codegen/ScalarFunctionBindingEmitter.java   | 164 +++++++++++++
 .../engine/codegen/TajoGeneratorAdapter.java    |  60 +++++
 .../engine/codegen/VariablesPreBuilder.java     |   2 +-
 .../apache/tajo/engine/eval/AlgebraicUtil.java  |   2 +-
 .../org/apache/tajo/engine/eval/BinaryEval.java |   2 +-
 .../apache/tajo/engine/eval/FunctionEval.java   |   4 +-
 .../tajo/engine/eval/WindowFunctionEval.java    |   2 +-
 .../tajo/engine/function/AggFunction.java       |   3 +-
 .../tajo/engine/function/FunctionLoader.java    | 239 +++++++++++++++++++
 .../tajo/engine/function/GeneralFunction.java   |   3 +-
 .../tajo/engine/function/builtin/AvgInt.java    |   1 -
 .../engine/function/math/MathFunctions.java     |  46 ++++
 .../apache/tajo/engine/function/math/Pow.java   |  26 +-
 .../apache/tajo/engine/json/CoreGsonHelper.java |   2 +-
 .../optimizer/eval/rules/ConstantFolding.java   |   2 +-
 .../engine/plan/EvalTreeProtoDeserializer.java  |   4 +-
 .../tajo/engine/planner/ExprAnnotator.java      | 113 +--------
 .../tajo/engine/planner/TypeDeterminant.java    |   6 +-
 .../planner/logical/TruncateTableNode.java      |   2 +-
 .../join/GreedyHeuristicJoinOrderAlgorithm.java |   4 +-
 .../engine/planner/logical/join/JoinEdge.java   |   2 +-
 .../engine/planner/logical/join/JoinGraph.java  |   5 +-
 .../apache/tajo/engine/utils/DataTypeUtil.java  | 121 ----------
 .../java/org/apache/tajo/master/TajoMaster.java |  85 +------
 .../tajo/master/TajoMasterClientService.java    |   3 +-
 .../java/org/apache/tajo/util/ClassUtil.java    | 156 ------------
 .../main/java/org/apache/tajo/util/JSPUtil.java |   2 +-
 .../main/resources/webapps/admin/functions.jsp  |   2 +-
 .../apache/tajo/LocalTajoTestingUtility.java    |  21 ++
 .../org/apache/tajo/client/TestTajoClient.java  |   2 +-
 .../apache/tajo/engine/eval/ExprTestBase.java   |   4 +-
 .../tajo/engine/eval/TestEvalTreeUtil.java      |   3 +-
 .../engine/function/TestFunctionLoader.java     |  46 ++++
 .../tajo/engine/function/TestMathFunctions.java |   2 +
 .../tajo/engine/planner/TestExprAnnotator.java  |  12 +-
 .../engine/planner/TestLogicalOptimizer.java    |   3 +-
 .../tajo/engine/planner/TestLogicalPlanner.java |   3 +-
 .../planner/global/TestBroadcastJoinPlan.java   |   3 +-
 .../planner/physical/TestPhysicalPlanner.java   |   3 +-
 .../apache/tajo/master/TestGlobalPlanner.java   |   3 +-
 .../testFindScalarFunctions.result              |   2 +
 70 files changed, 2355 insertions(+), 906 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/fbb95ec6/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
----------------------------------------------------------------------
diff --cc tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
index 38b57a1,db402ae..3d2cd21
--- a/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
+++ b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
@@@ -115,37 -115,14 +115,15 @@@ message NamespaceProto 
    optional string namespace = 2;
  }
  
- enum FunctionType {
-   GENERAL = 0;
-   AGGREGATION = 1;
-   DISTINCT_AGGREGATION = 2;
-   WINDOW = 3;
-   UDF = 4;
-   UDA = 5;
-   DISTINCT_UDA = 6;
-   WINDOW_UDA = 7;
- }
- 
- message FunctionDescProto {
-   required string signature = 1;
-   required string className = 2;
-   required FunctionType type = 3;
-   repeated DataType parameterTypes = 4;
-   required DataType returnType = 5;
-   optional string description = 6;
-   optional string example = 7;
-   optional string detail = 8;
- }
- 
  message IndexDescProto {
    required TableIdentifierProto tableIdentifier = 1;
 -  required string indexName = 2;
 -  required ColumnProto column = 3;
 -  required IndexMethod indexMethod = 4;
 -  optional bool isUnique = 5 [default = false];
 -  optional bool isClustered = 6 [default = false];
 -  optional bool isAscending = 7 [default = false];
 +  required string name = 2;
 +  required string indexPath = 3;
 +  required ColumnProto column = 4;
 +  required IndexMethod indexMethod = 5;
 +  optional bool isUnique = 6 [default = false];
 +  optional bool isClustered = 7 [default = false];
 +  optional bool isAscending = 8 [default = false];
  }
  
  enum IndexMethod {
@@@ -301,3 -278,56 +279,56 @@@ message AlterColumnProto 
    required string oldColumnName = 1;
    required string newColumnName = 2;
  }
+ 
+ ////////////////////////////////////////////////
+ // Function and UDF Section
+ ////////////////////////////////////////////////
+ 
+ enum FunctionType {
+   GENERAL = 0;
+   AGGREGATION = 1;
+   DISTINCT_AGGREGATION = 2;
+   WINDOW = 3;
+   UDF = 4;
+   UDA = 5;
+   DISTINCT_UDA = 6;
+   WINDOW_UDA = 7;
+ }
+ 
+ message FunctionDescProto {
+   required FunctionSignatureProto signature = 1;
+   required FunctionSupplementProto supplement = 2;
+   required FunctionInvocationProto invocation = 3;
+ }
+ 
+ message FunctionSignatureProto {
+   required FunctionType type = 1;
+   required string name = 2;
+   required DataType returnType = 3;
+   repeated DataType parameterTypes = 4;
+ }
+ 
+ message FunctionSupplementProto {
+   optional string shortDescription = 1;
+   optional string detail = 2;
+   optional string example = 3;
+ }
+ 
+ message FunctionInvocationProto {
+   optional ClassBaseInvocationDescProto legacy = 1;
+   optional StaticMethodInvocationDescProto scalar = 2;
+   optional ClassBaseInvocationDescProto aggregation = 3;
+   optional StaticMethodInvocationDescProto scalarJIT = 4;
+   optional ClassBaseInvocationDescProto aggregationJIT = 5;
+ }
+ 
+ message ClassBaseInvocationDescProto {
+   required string className = 1;
+ }
+ 
+ message StaticMethodInvocationDescProto {
+   required string className = 1;
+   required string methodName = 2;
+   required string returnClass = 3;
+   repeated string paramClasses = 4;
 -}
++}

http://git-wip-us.apache.org/repos/asf/tajo/blob/fbb95ec6/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tajo/blob/fbb95ec6/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tajo/blob/fbb95ec6/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tajo/blob/fbb95ec6/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
----------------------------------------------------------------------