You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2013/05/09 07:38:43 UTC
[11/11] git commit: TAJO-57: Recognize Parser and Catalog Standard
SQL data types. (hyunsik)
TAJO-57: Recognize Parser and Catalog Standard SQL data types. (hyunsik)
Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/c1c6f83e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/c1c6f83e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/c1c6f83e
Branch: refs/heads/master
Commit: c1c6f83eafdea80d931094285f8da1186f062cf5
Parents: fc47436
Author: Hyunsik Choi <hy...@apache.org>
Authored: Thu May 9 14:37:35 2013 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Thu May 9 14:37:35 2013 +0900
----------------------------------------------------------------------
.../java/tajo/catalog/AbstractCatalogClient.java | 18 +-
.../catalog/AlreadyRegisteredURIException.java | 40 --
.../src/main/java/tajo/catalog/AttributeType.java | 25 -
.../src/main/java/tajo/catalog/CatalogReader.java | 31 --
.../src/main/java/tajo/catalog/CatalogService.java | 2 +-
.../java/tajo/catalog/CatalogServiceProtocol.java | 105 ----
.../src/main/proto/CatalogProtos.proto | 23 +-
.../src/main/java/tajo/catalog/CatalogUtil.java | 138 ++++---
.../src/main/java/tajo/catalog/Column.java | 16 +-
.../src/main/java/tajo/catalog/FunctionDesc.java | 6 +-
.../src/main/java/tajo/catalog/Schema.java | 9 +-
.../src/main/java/tajo/catalog/TCatUtil.java | 130 -----
.../java/tajo/catalog/function/AggFunction.java | 4 +-
.../main/java/tajo/catalog/json/GsonCreator.java | 3 +
.../java/tajo/catalog/statistics/TupleUtil.java | 45 +-
.../src/main/proto/CatalogProtos.proto | 183 ++++----
.../test/java/tajo/catalog/TestCatalogUtil.java | 8 +-
.../src/test/java/tajo/catalog/TestColumn.java | 22 +-
.../test/java/tajo/catalog/TestFunctionDesc.java | 37 +-
.../src/test/java/tajo/catalog/TestIndexDesc.java | 12 +-
.../src/test/java/tajo/catalog/TestSchema.java | 26 +-
.../src/test/java/tajo/catalog/TestTableDesc.java | 14 +-
.../src/test/java/tajo/catalog/TestTableInfo.java | 48 +-
.../src/test/java/tajo/catalog/TestTableMeta.java | 48 +-
.../tajo/catalog/statistics/TestColumnStat.java | 16 +-
.../tajo/catalog/statistics/TestTableStat.java | 4 +-
.../catalog/AlreadyRegisteredURIException.java | 43 --
.../src/main/java/tajo/catalog/CatalogServer.java | 11 +-
.../src/main/java/tajo/catalog/store/DBStore.java | 46 +--
.../src/test/java/tajo/catalog/TestCatalog.java | 60 ++--
.../src/test/java/tajo/catalog/TestDBStore.java | 42 +-
.../tajo/catalog/statistics/TestColumnStat.java | 16 +-
.../tajo/catalog/statistics/TestTableStat.java | 4 +-
tajo-common/pom.xml | 1 +
.../src/main/java/tajo/datum/ArrayDatum.java | 6 +-
.../src/main/java/tajo/datum/BoolDatum.java | 172 -------
.../src/main/java/tajo/datum/ByteDatum.java | 134 ------
.../src/main/java/tajo/datum/BytesDatum.java | 161 -------
.../src/main/java/tajo/datum/CharDatum.java | 17 +-
tajo-common/src/main/java/tajo/datum/Datum.java | 42 +-
.../src/main/java/tajo/datum/DatumFactory.java | 90 ++--
.../src/main/java/tajo/datum/DatumType.java | 42 --
.../src/main/java/tajo/datum/DoubleDatum.java | 270 -----------
.../src/main/java/tajo/datum/FloatDatum.java | 278 -----------
.../src/main/java/tajo/datum/IPv4Datum.java | 136 ------
tajo-common/src/main/java/tajo/datum/IntDatum.java | 274 -----------
.../src/main/java/tajo/datum/LongDatum.java | 279 -----------
.../src/main/java/tajo/datum/NullDatum.java | 20 +-
.../src/main/java/tajo/datum/NumericDatum.java | 4 +-
.../src/main/java/tajo/datum/ShortDatum.java | 268 -----------
.../src/main/java/tajo/datum/StringDatum.java | 157 ------
.../src/main/java/tajo/datum/StringDatum2.java | 140 ------
.../datum/exception/InvalidOperationException.java | 4 +-
tajo-common/src/main/java/tajo/storage/Tuple.java | 91 ++--
.../src/test/java/tajo/datum/TestBoolDatum.java | 9 +-
.../src/test/java/tajo/datum/TestByteDatum.java | 75 ---
.../src/test/java/tajo/datum/TestBytesDatum.java | 11 +-
.../src/test/java/tajo/datum/TestCharDatum.java | 13 +-
.../src/test/java/tajo/datum/TestDatum.java | 251 +++++-----
.../src/test/java/tajo/datum/TestDatumFactory.java | 43 +-
.../src/test/java/tajo/datum/TestDoubleDatum.java | 69 ---
.../src/test/java/tajo/datum/TestFloatDatum.java | 25 +-
.../src/test/java/tajo/datum/TestIPv4Datum.java | 75 ---
.../src/test/java/tajo/datum/TestIntDatum.java | 69 ---
.../src/test/java/tajo/datum/TestLongDatum.java | 69 ---
.../src/test/java/tajo/datum/TestShortDatum.java | 69 ---
.../src/test/java/tajo/datum/TestStringDatum.java | 69 ---
.../src/main/antlr3/tajo/engine/parser/NQL.g | 342 ++++++++++----
.../src/main/java/tajo/benchmark/TPCH.java | 144 +++---
.../src/main/java/tajo/client/TajoClient.java | 10 +-
.../java/tajo/engine/eval/AggFuncCallEval.java | 4 +-
.../src/main/java/tajo/engine/eval/BinaryEval.java | 66 ++--
.../main/java/tajo/engine/eval/CaseWhenEval.java | 10 +-
.../src/main/java/tajo/engine/eval/ConstEval.java | 29 +-
.../src/main/java/tajo/engine/eval/EvalNode.java | 2 +-
.../main/java/tajo/engine/eval/EvalTreeUtil.java | 4 +-
.../src/main/java/tajo/engine/eval/FieldEval.java | 4 +-
.../src/main/java/tajo/engine/eval/FuncEval.java | 2 +-
.../src/main/java/tajo/engine/eval/IsNullEval.java | 19 +-
.../src/main/java/tajo/engine/eval/LikeEval.java | 16 +-
.../src/main/java/tajo/engine/eval/NotEval.java | 9 +-
.../java/tajo/engine/eval/PartialBinaryExpr.java | 4 +-
.../main/java/tajo/engine/function/Country.java | 11 +-
.../main/java/tajo/engine/function/InCountry.java | 12 +-
.../tajo/engine/function/builtin/AvgDouble.java | 23 +-
.../tajo/engine/function/builtin/AvgFloat.java | 26 +-
.../java/tajo/engine/function/builtin/AvgInt.java | 28 +-
.../java/tajo/engine/function/builtin/AvgLong.java | 27 +-
.../tajo/engine/function/builtin/CountRows.java | 16 +-
.../tajo/engine/function/builtin/CountValue.java | 8 +-
.../java/tajo/engine/function/builtin/Date.java | 11 +-
.../tajo/engine/function/builtin/MaxDouble.java | 21 +-
.../tajo/engine/function/builtin/MaxFloat.java | 15 +-
.../java/tajo/engine/function/builtin/MaxInt.java | 17 +-
.../java/tajo/engine/function/builtin/MaxLong.java | 23 +-
.../tajo/engine/function/builtin/MinDouble.java | 17 +-
.../tajo/engine/function/builtin/MinFloat.java | 22 +-
.../java/tajo/engine/function/builtin/MinInt.java | 15 +-
.../java/tajo/engine/function/builtin/MinLong.java | 19 +-
.../tajo/engine/function/builtin/MinString.java | 19 +-
.../tajo/engine/function/builtin/RandomInt.java | 7 +-
.../tajo/engine/function/builtin/SumDouble.java | 21 +-
.../tajo/engine/function/builtin/SumFloat.java | 17 +-
.../java/tajo/engine/function/builtin/SumInt.java | 17 +-
.../java/tajo/engine/function/builtin/SumLong.java | 21 +-
.../java/tajo/engine/function/builtin/Today.java | 6 +-
.../main/java/tajo/engine/json/GsonCreator.java | 2 +
.../main/java/tajo/engine/parser/EvalTreeBin.java | 31 --
.../main/java/tajo/engine/parser/ParseUtil.java | 44 --
.../java/tajo/engine/parser/QueryAnalyzer.java | 112 +++--
.../main/java/tajo/engine/parser/QueryBlock.java | 3 +-
.../java/tajo/engine/planner/LogicalPlanner.java | 2 +-
.../main/java/tajo/engine/planner/PlannerUtil.java | 10 +-
.../engine/planner/RangePartitionAlgorithm.java | 30 +-
.../tajo/engine/planner/UniformRangePartition.java | 138 +++---
.../engine/planner/physical/ExternalSortExec.java | 6 +-
.../engine/planner/physical/IndexedStoreExec.java | 2 +-
.../planner/physical/JoinTupleComparator.java | 8 +-
.../planner/physical/PartitionedStoreExec.java | 4 +-
.../engine/planner/physical/StoreTableExec.java | 6 +-
.../main/java/tajo/engine/query/ResultSetImpl.java | 24 +-
.../tajo/engine/query/ResultSetMetaDataImpl.java | 60 ++--
.../query/exception/InvalidCastException.java | 35 --
.../query/exception/InvalidEvalException.java | 30 --
.../main/java/tajo/engine/utils/SchemaUtil.java | 4 +-
.../src/main/java/tajo/engine/utils/TupleUtil.java | 215 +++------
.../src/main/java/tajo/master/GlobalEngine.java | 8 +-
.../src/main/java/tajo/master/GlobalPlanner.java | 16 +-
.../main/java/tajo/master/GlobalPlannerUtils.java | 4 +-
.../src/main/java/tajo/master/Query.java | 7 +-
.../src/main/java/tajo/master/Repartitioner.java | 6 +-
.../src/main/java/tajo/master/SubQuery.java | 8 +-
.../src/main/java/tajo/master/TajoMaster.java | 103 ++--
.../src/main/proto/CatalogProtos.proto | 183 ++++----
.../src/test/java/tajo/BackendTestingUtil.java | 12 +-
.../test/java/tajo/LocalTajoTestingUtility.java | 7 +-
.../src/test/java/tajo/TajoTestingCluster.java | 6 +-
.../src/test/java/tajo/client/TestTajoClient.java | 4 +-
.../test/java/tajo/engine/eval/TestEvalTree.java | 147 +++---
.../java/tajo/engine/eval/TestEvalTreeUtil.java | 64 ++--
.../java/tajo/engine/function/TestAggFunction.java | 10 +-
.../tajo/engine/function/TestGeneralFunction.java | 10 +-
.../java/tajo/engine/parser/TestNQLParser.java | 92 ++++-
.../java/tajo/engine/parser/TestQueryAnalyzer.java | 116 +++---
.../engine/plan/global/TestGlobalQueryPlanner.java | 28 +-
.../tajo/engine/planner/TestLogicalOptimizer.java | 24 +-
.../tajo/engine/planner/TestLogicalPlanner.java | 74 ++--
.../java/tajo/engine/planner/TestPlannerUtil.java | 85 ++--
.../engine/planner/TestUniformRangePartition.java | 148 +++---
.../planner/global/TestGlobalQueryOptimizer.java | 23 +-
.../engine/planner/physical/TestBNLJoinExec.java | 54 +-
.../engine/planner/physical/TestBSTIndexExec.java | 24 +-
.../planner/physical/TestExternalSortExec.java | 16 +-
.../engine/planner/physical/TestHashJoinExec.java | 50 +-
.../planner/physical/TestHashPartitioner.java | 30 +-
.../engine/planner/physical/TestMergeJoinExec.java | 60 ++--
.../engine/planner/physical/TestNLJoinExec.java | 56 ++--
.../planner/physical/TestPhysicalPlanner.java | 128 +++---
.../tajo/engine/planner/physical/TestSortExec.java | 22 +-
.../java/tajo/engine/query/TestNullValues.java | 30 +-
.../java/tajo/engine/query/TestResultSetImpl.java | 14 +-
.../test/java/tajo/engine/util/TestTupleUtil.java | 118 +++---
.../java/tajo/master/TestExecutionBlockCursor.java | 9 +-
.../src/test/java/tajo/storage/TestFragment.java | 10 +-
.../src/test/java/tajo/storage/TestHCFile.java | 268 -----------
.../test/java/tajo/storage/TestHColumnReader.java | 145 ------
.../src/test/java/tajo/storage/TestRowFile.java | 22 +-
.../src/test/java/tajo/worker/SlowFunc.java | 65 ---
.../tajo/worker/TestRangeRetrieverHandler.java | 30 +-
.../src/main/java/tajo/storage/CSVFile.java | 82 ++--
.../src/main/java/tajo/storage/Fragment.java | 2 +-
.../src/main/java/tajo/storage/FrameTuple.java | 46 +-
.../src/main/java/tajo/storage/RawFile.java | 108 ++--
.../src/main/java/tajo/storage/RowFile.java | 114 +++---
.../src/main/java/tajo/storage/RowStoreUtil.java | 94 ++--
.../src/main/java/tajo/storage/StorageUtil.java | 21 +-
.../main/java/tajo/storage/TableStatistics.java | 14 +-
.../src/main/java/tajo/storage/Tuple.java | 22 +-
.../main/java/tajo/storage/TupleComparator.java | 8 +-
.../src/main/java/tajo/storage/VTuple.java | 46 +-
.../main/java/tajo/storage/hcfile/BasicBlock.java | 140 ------
.../src/main/java/tajo/storage/hcfile/Block.java | 71 ---
.../main/java/tajo/storage/hcfile/BlockMeta.java | 50 --
.../main/java/tajo/storage/hcfile/BlockReader.java | 57 ---
.../main/java/tajo/storage/hcfile/BlockWriter.java | 57 ---
.../java/tajo/storage/hcfile/ColumnAppender.java | 35 --
.../tajo/storage/hcfile/ColumnFileAppender.java | 41 --
.../tajo/storage/hcfile/ColumnFileScanner.java | 33 --
.../main/java/tajo/storage/hcfile/ColumnMeta.java | 48 --
.../java/tajo/storage/hcfile/ColumnReader.java | 42 --
.../java/tajo/storage/hcfile/ColumnScanner.java | 107 ----
.../java/tajo/storage/hcfile/ColumnStoreUtil.java | 36 --
.../java/tajo/storage/hcfile/CompressedBlock.java | 26 -
.../tajo/storage/hcfile/CompressedBlockReader.java | 53 --
.../tajo/storage/hcfile/CompressedBlockWriter.java | 62 ---
.../java/tajo/storage/hcfile/HBlockMetaImpl.java | 94 ----
.../src/main/java/tajo/storage/hcfile/HCFile.java | 373 ---------------
.../java/tajo/storage/hcfile/HCFileMetaImpl.java | 301 ------------
.../java/tajo/storage/hcfile/HCTupleAppender.java | 194 --------
.../tajo/storage/hcfile/HColumnMetaWritable.java | 164 -------
.../java/tajo/storage/hcfile/HColumnReader.java | 259 ----------
.../src/main/java/tajo/storage/hcfile/Index.java | 170 -------
.../main/java/tajo/storage/hcfile/IndexItem.java | 62 ---
.../main/java/tajo/storage/hcfile/Seekable.java | 30 --
.../java/tajo/storage/hcfile/TupleAppender.java | 31 --
.../main/java/tajo/storage/hcfile/Updatable.java | 36 --
.../java/tajo/storage/hcfile/UpdatableBlock.java | 22 -
.../storage/hcfile/UpdatableSeekableBlock.java | 23 -
.../tajo/storage/hcfile/compress/BitVector.java | 44 --
.../java/tajo/storage/hcfile/compress/Codec.java | 55 ---
.../tajo/storage/hcfile/compress/Dictionary.java | 44 --
.../main/java/tajo/storage/hcfile/compress/LZ.java | 44 --
.../tajo/storage/hcfile/compress/NullSuppress.java | 44 --
.../tajo/storage/hcfile/compress/RunLength.java | 44 --
.../java/tajo/storage/hcfile/compress/Snappy.java | 44 --
.../tajo/storage/hcfile/reader/ArrayReader.java | 44 --
.../tajo/storage/hcfile/reader/ByteReader.java | 37 --
.../tajo/storage/hcfile/reader/BytesReader.java | 40 --
.../tajo/storage/hcfile/reader/CharReader.java | 37 --
.../tajo/storage/hcfile/reader/DoubleReader.java | 37 --
.../tajo/storage/hcfile/reader/FloatReader.java | 37 --
.../tajo/storage/hcfile/reader/IPv4Reader.java | 40 --
.../java/tajo/storage/hcfile/reader/IntReader.java | 37 --
.../tajo/storage/hcfile/reader/LongReader.java | 37 --
.../java/tajo/storage/hcfile/reader/Reader.java | 32 --
.../tajo/storage/hcfile/reader/ShortReader.java | 37 --
.../tajo/storage/hcfile/reader/String2Reader.java | 39 --
.../tajo/storage/hcfile/reader/StringReader.java | 40 --
.../tajo/storage/hcfile/reader/TypeReader.java | 69 ---
.../tajo/storage/hcfile/writer/ArrayWriter.java | 41 --
.../tajo/storage/hcfile/writer/ByteWriter.java | 36 --
.../tajo/storage/hcfile/writer/BytesWriter.java | 38 --
.../tajo/storage/hcfile/writer/CharWriter.java | 36 --
.../tajo/storage/hcfile/writer/DoubleWriter.java | 36 --
.../tajo/storage/hcfile/writer/FloatWriter.java | 36 --
.../java/tajo/storage/hcfile/writer/IntWriter.java | 36 --
.../tajo/storage/hcfile/writer/LongWriter.java | 36 --
.../tajo/storage/hcfile/writer/ShortWriter.java | 36 --
.../tajo/storage/hcfile/writer/TypeWriter.java | 90 ----
.../java/tajo/storage/hcfile/writer/Writer.java | 31 --
.../java/tajo/storage/rcfile/RCFileWrapper.java | 73 ++--
.../java/tajo/storage/trevni/TrevniAppender.java | 61 ++--
.../java/tajo/storage/trevni/TrevniScanner.java | 48 +-
.../src/main/proto/CatalogProtos.proto | 185 ++++----
.../src/test/java/tajo/storage/TestFrameTuple.java | 44 +-
.../test/java/tajo/storage/TestMergeScanner.java | 30 +-
.../test/java/tajo/storage/TestStorageManager.java | 18 +-
.../src/test/java/tajo/storage/TestStorages.java | 83 ++--
.../java/tajo/storage/TestTupleComparator.java | 32 +-
.../src/test/java/tajo/storage/TestVTuple.java | 75 ++--
.../test/java/tajo/storage/hcfile/IndexTest.java | 66 ---
.../test/java/tajo/storage/index/TestBSTIndex.java | 276 ++++++------
.../storage/index/TestSingleCSVFileBSTIndex.java | 68 ++--
.../test/java/tajo/storage/rcfile/TestRCFile.java | 40 +-
254 files changed, 3404 insertions(+), 11057 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AbstractCatalogClient.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AbstractCatalogClient.java b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AbstractCatalogClient.java
index ce0efcb..f9dd78c 100644
--- a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AbstractCatalogClient.java
+++ b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AbstractCatalogClient.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import tajo.catalog.CatalogProtocol.CatalogProtocolService;
import tajo.catalog.proto.CatalogProtos.*;
+import tajo.common.TajoDataTypes.DataType;
import tajo.rpc.protocolrecords.PrimitiveProtos.NullProto;
import tajo.rpc.protocolrecords.PrimitiveProtos.StringProto;
@@ -48,7 +49,7 @@ public abstract class AbstractCatalogClient implements CatalogService {
@Override
public final TableDesc getTableDesc(final String name) {
try {
- return TCatUtil.newTableDesc(stub.getTableDesc(null, StringProto.newBuilder()
+ return CatalogUtil.newTableDesc(stub.getTableDesc(null, StringProto.newBuilder()
.setValue(name).build()));
} catch (ServiceException e) {
LOG.error(e);
@@ -210,9 +211,8 @@ public abstract class AbstractCatalogClient implements CatalogService {
UnregisterFunctionRequest.Builder builder =
UnregisterFunctionRequest.newBuilder();
builder.setSignature(signature);
- int size = paramTypes.length;
- for (int i = 0; i < size; i++) {
- builder.addParameterTypes(paramTypes[i]);
+ for (DataType type : paramTypes) {
+ builder.addParameterTypes(type);
}
try {
return stub.unregisterFunction(null, builder.build()).getValue();
@@ -228,9 +228,8 @@ public abstract class AbstractCatalogClient implements CatalogService {
GetFunctionMetaRequest.Builder builder =
GetFunctionMetaRequest.newBuilder();
builder.setSignature(signature);
- int size = paramTypes.length;
- for (int i = 0; i < size; i++) {
- builder.addParameterTypes(paramTypes[i]);
+ for (DataType type : paramTypes) {
+ builder.addParameterTypes(type);
}
FunctionDescProto descProto;
@@ -249,9 +248,8 @@ public abstract class AbstractCatalogClient implements CatalogService {
ContainFunctionRequest.Builder builder =
ContainFunctionRequest.newBuilder();
builder.setSignature(signature);
- int size = paramTypes.length;
- for (int i = 0; i < size; i++) {
- builder.addParameterTypes(paramTypes[i]);
+ for (DataType type : paramTypes) {
+ builder.addParameterTypes(type);
}
try {
return stub.containFunction(null, builder.build()).getValue();
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AlreadyRegisteredURIException.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AlreadyRegisteredURIException.java b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AlreadyRegisteredURIException.java
deleted file mode 100644
index 69df366..0000000
--- a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AlreadyRegisteredURIException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tajo.catalog;
-
-import java.net.URI;
-
-public class AlreadyRegisteredURIException extends RuntimeException {
-
- private static final long serialVersionUID = 747390434221048348L;
-
- public AlreadyRegisteredURIException() {
- }
-
- /**
- * @param uri
- */
- public AlreadyRegisteredURIException(String uri) {
- super("Already registered TRID: "+uri);
- }
-
- public AlreadyRegisteredURIException(URI uri) {
- this("Already registered TRID: "+uri);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AttributeType.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AttributeType.java b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AttributeType.java
deleted file mode 100644
index 49e757b..0000000
--- a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/AttributeType.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tajo.catalog;
-
-public enum AttributeType {
- GROUPBY,
- AGGREGATION,
- NORMAL
-}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogReader.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogReader.java b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogReader.java
deleted file mode 100644
index 3c61772..0000000
--- a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogReader.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tajo.catalog;
-
-import tajo.catalog.proto.CatalogProtos.DataType;
-
-public interface CatalogReader {
- boolean existsTable(String tableId);
-
- TableDesc getTableDesc(String tableId);
-
- FunctionDesc getFunctionMeta(String signature, DataType... paramTypes);
-
- boolean containFunction(String signature, DataType... paramTypes);
-}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogService.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogService.java b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogService.java
index 290daa0..823ade1 100644
--- a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogService.java
+++ b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogService.java
@@ -18,7 +18,7 @@
package tajo.catalog;
-import tajo.catalog.proto.CatalogProtos.DataType;
+import tajo.common.TajoDataTypes.DataType;
import java.util.Collection;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogServiceProtocol.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogServiceProtocol.java b/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogServiceProtocol.java
deleted file mode 100644
index bdc7e1a..0000000
--- a/tajo-catalog/tajo-catalog-client/src/main/java/tajo/catalog/CatalogServiceProtocol.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tajo.catalog;
-
-import tajo.catalog.proto.CatalogProtos.*;
-import tajo.rpc.protocolrecords.PrimitiveProtos.BoolProto;
-import tajo.rpc.protocolrecords.PrimitiveProtos.NullProto;
-import tajo.rpc.protocolrecords.PrimitiveProtos.StringProto;
-
-public interface CatalogServiceProtocol {
-
- /**
- * Get a table description by name
- * @param name table name
- * @return a table description
- * @see TableDescImpl
- * @throws Throwable
- */
- TableDescProto getTableDesc(StringProto name);
-
- /**
- *
- * @return
- * @throws tajo.catalog.exception.CatalogException
- */
- GetAllTableNamesResponse getAllTableNames(NullProto request);
-
- /**
- *
- * @return
- * @throws tajo.catalog.exception.CatalogException
- */
- GetFunctionsResponse getFunctions(NullProto request);
-
- /**
- * Add a table via table description
- * @param meta table meta
- * @see TableDescImpl
- * @throws Throwable
- */
- void addTable(TableDescProto desc);
-
- /**
- * Drop a table by name
- * @param name table name
- * @throws Throwable
- */
- void deleteTable(StringProto name);
-
- BoolProto existsTable(StringProto tableId);
-
- void addIndex(IndexDescProto proto);
-
- BoolProto existIndex(StringProto indexName);
-
- BoolProto existIndex(GetIndexRequest req);
-
- IndexDescProto getIndex(StringProto indexName);
-
- IndexDescProto getIndex(GetIndexRequest req);
-
- void delIndex(StringProto indexName);
-
- /**
- *
- * @param funcDesc
- */
- void registerFunction(FunctionDescProto funcDesc);
-
- /**
- *
- * @param signature
- */
- void unregisterFunction(UnregisterFunctionRequest request);
-
- /**
- *
- * @param signature
- * @return
- */
- FunctionDescProto getFunctionMeta(GetFunctionMetaRequest request);
-
- /**
- *
- * @param signature
- * @return
- */
- BoolProto containFunction(ContainFunctionRequest request);
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtos.proto
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtos.proto b/tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtos.proto
index dd1bf69..acb89fe 100644
--- a/tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtos.proto
+++ b/tajo-catalog/tajo-catalog-client/src/main/proto/CatalogProtos.proto
@@ -22,28 +22,7 @@ option optimize_for = SPEED;
option java_generic_services = false;
option java_generate_equals_and_hash = true;
-enum DataType {
- BOOLEAN = 0;
- BYTE = 1;
- CHAR = 2;
- BYTES = 3;
- SHORT = 4;
- INT = 5;
- BIGINT = 6;
- LONG = 7;
- FLOAT = 8;
- DOUBLE = 9;
- BIGDECIMAL = 10;
- STRING = 11;
- DATE = 12;
- IPv4 = 13;
- IPv6 = 14;
- NULL = 15;
- ANY = 16;
- ALL = 17;
- ARRAY = 18;
- STRING2 = 19;
-}
+import "DataTypes.proto";
enum StoreType {
MEM = 0;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/CatalogUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/CatalogUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/CatalogUtil.java
index de193f3..41a72de 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/CatalogUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/CatalogUtil.java
@@ -18,10 +18,13 @@
package tajo.catalog;
+import org.apache.hadoop.fs.Path;
import tajo.catalog.proto.CatalogProtos;
import tajo.catalog.proto.CatalogProtos.ColumnProto;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.SchemaProto;
+import tajo.catalog.proto.CatalogProtos.TableDescProto;
+import tajo.catalog.statistics.TableStat;
+import tajo.common.TajoDataTypes.DataType;
import tajo.util.FileUtil;
import java.io.File;
@@ -29,12 +32,12 @@ import java.io.IOException;
import java.util.Collection;
import static tajo.catalog.proto.CatalogProtos.StoreType;
+import static tajo.common.TajoDataTypes.Type;
public class CatalogUtil {
public static String getCanonicalName(String signature,
Collection<DataType> paramTypes) {
- DataType [] types = paramTypes.toArray(
- new DataType[paramTypes.size()]);
+ DataType [] types = paramTypes.toArray(new DataType[paramTypes.size()]);
return getCanonicalName(signature, types);
}
public static String getCanonicalName(String signature,
@@ -43,7 +46,7 @@ public class CatalogUtil {
sb.append("(");
int i = 0;
for (DataType type : paramTypes) {
- sb.append(type);
+ sb.append(type.getType());
if(i < paramTypes.length - 1) {
sb.append(",");
}
@@ -53,58 +56,6 @@ public class CatalogUtil {
sb.append(")");
return sb.toString();
}
-
- public static char getTypeCode(DataType type) {
- switch(type) {
- case BOOLEAN: return 'Z';
- case BYTE: return 'B';
- case SHORT: return 'S';
- case INT: return 'I';
- case LONG: return 'J';
- case FLOAT: return 'F';
- case DOUBLE: return 'D';
- case BYTES: return 'N';
- case IPv4: return '4';
- case IPv6: return '6';
- default: throw new InternalError("Unsupported type exception");
- }
- }
-
- /**
- * This method transforms the unqualified names of a given schema into
- * the qualified names.
- *
- * @param tableName a table name to be prefixed
- * @param schema a schema to be transformed
- *
- * @return
- */
-
- public static SchemaProto getQualfiedSchema(String tableName,
- SchemaProto schema) {
- SchemaProto.Builder revisedSchema = SchemaProto.newBuilder(schema);
- revisedSchema.clearFields();
- String[] split;
- for (ColumnProto col : schema.getFieldsList()) {
- split = col.getColumnName().split("\\.");
- if (split.length == 1) { // if not qualified name
- // rewrite the column
- ColumnProto.Builder builder = ColumnProto.newBuilder(col);
- builder.setColumnName(tableName + "." + col.getColumnName());
- col = builder.build();
- } else if (split.length == 2) {
- ColumnProto.Builder builder = ColumnProto.newBuilder(col);
- builder.setColumnName(tableName + "." + split[1]);
- col = builder.build();
- } else {
- throw new InternalError("Unaccetable field name "
- + col.getColumnName());
- }
- revisedSchema.addFields(col);
- }
-
- return revisedSchema.build();
- }
public static String prettyPrint(TableMeta meta) {
StringBuilder sb = new StringBuilder();
@@ -152,4 +103,79 @@ public class CatalogUtil {
return null;
}
}
+
+ public static TableMeta newTableMeta(Schema schema, StoreType type) {
+ return new TableMetaImpl(schema, type, new Options());
+ }
+
+ public static TableMeta newTableMeta(Schema schema, StoreType type,
+ Options options) {
+ return new TableMetaImpl(schema, type, options);
+ }
+
+ public static TableMeta newTableMeta(Schema schema, StoreType type, Options options,
+ TableStat stat) {
+ return new TableMetaImpl(schema, type, options, stat);
+ }
+
+ public static TableDesc newTableDesc(String tableName, TableMeta meta,
+ Path path) {
+ return new TableDescImpl(tableName, meta, path);
+ }
+
+ public static TableDesc newTableDesc(TableDescProto proto) {
+ return new TableDescImpl(proto);
+ }
+
+ public static TableDesc newTableDesc(String tableName,
+ Schema schema, StoreType type, Options options, Path path) {
+ return new TableDescImpl(tableName, schema, type, options, path);
+ }
+
+ /**
+ * This method transforms the unqualified names of a given schema into
+ * the qualified names.
+ *
+ * @param tableName a table name to be prefixed
+ * @param schema a schema to be transformed
+ *
+ * @return
+ */
+ public static SchemaProto getQualfiedSchema(String tableName,
+ SchemaProto schema) {
+ SchemaProto.Builder revisedSchema = SchemaProto.newBuilder(schema);
+ revisedSchema.clearFields();
+ String[] split;
+ for (ColumnProto col : schema.getFieldsList()) {
+ split = col.getColumnName().split("\\.");
+ if (split.length == 1) { // if not qualified name
+ // rewrite the column
+ ColumnProto.Builder builder = ColumnProto.newBuilder(col);
+ builder.setColumnName(tableName + "." + col.getColumnName());
+ col = builder.build();
+ } else if (split.length == 2) {
+ ColumnProto.Builder builder = ColumnProto.newBuilder(col);
+ builder.setColumnName(tableName + "." + split[1]);
+ col = builder.build();
+ } else {
+ throw new InternalError("Unaccetable field name "
+ + col.getColumnName());
+ }
+ revisedSchema.addFields(col);
+ }
+
+ return revisedSchema.build();
+ }
+
+ public static DataType newDataTypeWithoutLen(Type type) {
+ return DataType.newBuilder().setType(type).build();
+ }
+
+ public static DataType [] newDataTypesWithoutLen(Type... types) {
+ DataType [] dataTypes = new DataType[types.length];
+ for (int i = 0; i < types.length; i++) {
+ dataTypes[i] = DataType.newBuilder().setType(types[i]).build();
+ }
+ return dataTypes;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Column.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Column.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Column.java
index 0deff1f..ecdc4c3 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Column.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Column.java
@@ -22,8 +22,9 @@ import com.google.gson.annotations.Expose;
import tajo.catalog.json.GsonCreator;
import tajo.catalog.proto.CatalogProtos.ColumnProto;
import tajo.catalog.proto.CatalogProtos.ColumnProtoOrBuilder;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.common.ProtoObject;
+import tajo.common.TajoDataTypes;
+import tajo.common.TajoDataTypes.DataType;
public class Column implements ProtoObject<ColumnProto>, Cloneable {
private ColumnProto proto = ColumnProto.getDefaultInstance();
@@ -42,6 +43,10 @@ public class Column implements ProtoObject<ColumnProto>, Cloneable {
this.name = columnName.toLowerCase();
this.dataType = dataType;
}
+
+ public Column(String columnName, TajoDataTypes.Type type) {
+ this(columnName, CatalogUtil.newDataTypeWithoutLen(type));
+ }
public Column(ColumnProto proto) {
this.proto = proto;
@@ -108,11 +113,8 @@ public class Column implements ProtoObject<ColumnProto>, Cloneable {
public boolean equals(Object o) {
if (o instanceof Column) {
Column cd = (Column)o;
- if (this.getQualifiedName().equals(cd.getQualifiedName()) &&
- this.getDataType() == cd.getDataType()
- ) {
- return true;
- }
+ return this.getQualifiedName().equals(cd.getQualifiedName()) &&
+ this.getDataType().equals(cd.getDataType());
}
return false;
}
@@ -164,7 +166,7 @@ public class Column implements ProtoObject<ColumnProto>, Cloneable {
}
public String toString() {
- return getQualifiedName() +" (" + getDataType()+")";
+ return getQualifiedName() +" (" + getDataType().getType() +")";
}
public String toJSON() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/FunctionDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/FunctionDesc.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/FunctionDesc.java
index f11da36..7fdf336 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/FunctionDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/FunctionDesc.java
@@ -23,11 +23,11 @@ import com.google.gson.annotations.Expose;
import tajo.catalog.function.Function;
import tajo.catalog.function.GeneralFunction;
import tajo.catalog.json.GsonCreator;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.FunctionDescProto;
import tajo.catalog.proto.CatalogProtos.FunctionDescProtoOrBuilder;
import tajo.catalog.proto.CatalogProtos.FunctionType;
import tajo.common.ProtoObject;
+import tajo.common.TajoDataTypes.DataType;
import tajo.exception.InternalException;
import java.lang.reflect.Constructor;
@@ -65,7 +65,7 @@ public class FunctionDesc implements ProtoObject<FunctionDescProto>, Cloneable {
@SuppressWarnings("unchecked")
public FunctionDesc(String signature, String className, FunctionType type,
- DataType [] retType, DataType... argTypes) throws ClassNotFoundException {
+ DataType [] retType, DataType... argTypes) throws ClassNotFoundException {
this(signature, (Class<? extends Function>) Class.forName(className), type,
retType, argTypes);
}
@@ -151,7 +151,7 @@ public class FunctionDesc implements ProtoObject<FunctionDescProto>, Cloneable {
}
- public static DataType[] newNoNameSchema(DataType... types) {
+ public static DataType [] newNoNameSchema(DataType ... types) {
DataType [] dataTypes = types.clone();
return dataTypes;
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Schema.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Schema.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Schema.java
index 846bb36..d11170d 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Schema.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/Schema.java
@@ -25,10 +25,11 @@ import org.apache.commons.logging.LogFactory;
import tajo.catalog.exception.AlreadyExistsFieldException;
import tajo.catalog.json.GsonCreator;
import tajo.catalog.proto.CatalogProtos.ColumnProto;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.SchemaProto;
import tajo.catalog.proto.CatalogProtos.SchemaProtoOrBuilder;
import tajo.common.ProtoObject;
+import tajo.common.TajoDataTypes.DataType;
+import tajo.common.TajoDataTypes.Type;
import java.util.*;
@@ -142,7 +143,11 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable {
}
}
- public synchronized Schema addColumn(String name, DataType dataType) {
+ public synchronized Schema addColumn(String name, Type type) {
+ return addColumn(name, CatalogUtil.newDataTypeWithoutLen(type));
+ }
+
+ public synchronized Schema addColumn(String name, DataType dataType) {
initColumns();
setModified();
String lowcased = name.toLowerCase();
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/TCatUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/TCatUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/TCatUtil.java
deleted file mode 100644
index 5ce0e50..0000000
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/TCatUtil.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tajo.catalog;
-
-import org.apache.hadoop.fs.Path;
-import tajo.catalog.proto.CatalogProtos.*;
-import tajo.catalog.statistics.TableStat;
-
-import java.util.Collection;
-
-public class TCatUtil {
- public static String getCanonicalName(String signature,
- Collection<DataType> paramTypes) {
- DataType [] types = paramTypes.toArray(
- new DataType[paramTypes.size()]);
- return getCanonicalName(signature, types);
- }
- public static String getCanonicalName(String signature,
- DataType...paramTypes) {
- StringBuilder sb = new StringBuilder(signature);
- sb.append("(");
- int i = 0;
- for (DataType type : paramTypes) {
- sb.append(type);
- if(i < paramTypes.length - 1) {
- sb.append(",");
- }
-
- i++;
- }
- sb.append(")");
- return sb.toString();
- }
-
- public static char getTypeCode(DataType type) {
- switch(type) {
- case BOOLEAN: return 'Z';
- case BYTE: return 'B';
- case SHORT: return 'S';
- case INT: return 'I';
- case LONG: return 'J';
- case FLOAT: return 'F';
- case DOUBLE: return 'D';
- case BYTES: return 'N';
- case IPv4: return '4';
- case IPv6: return '6';
- default: throw new InternalError("Unsupported type exception");
- }
- }
-
- /**
- * This method transforms the unqualified names of a given schema into
- * the qualified names.
- *
- * @param tableName a table name to be prefixed
- * @param schema a schema to be transformed
- *
- * @return
- */
-
- public static SchemaProto getQualfiedSchema(String tableName,
- SchemaProto schema) {
- SchemaProto.Builder revisedSchema = SchemaProto.newBuilder(schema);
- revisedSchema.clearFields();
- String[] split;
- for (ColumnProto col : schema.getFieldsList()) {
- split = col.getColumnName().split("\\.");
- if (split.length == 1) { // if not qualified name
- // rewrite the column
- ColumnProto.Builder builder = ColumnProto.newBuilder(col);
- builder.setColumnName(tableName + "." + col.getColumnName());
- col = builder.build();
- } else if (split.length == 2) {
- ColumnProto.Builder builder = ColumnProto.newBuilder(col);
- builder.setColumnName(tableName + "." + split[1]);
- col = builder.build();
- } else {
- throw new InternalError("Unaccetable field name "
- + col.getColumnName());
- }
- revisedSchema.addFields(col);
- }
-
- return revisedSchema.build();
- }
-
- public static TableMeta newTableMeta(Schema schema, StoreType type) {
- return new TableMetaImpl(schema, type, new Options());
- }
-
- public static TableMeta newTableMeta(Schema schema, StoreType type,
- Options options) {
- return new TableMetaImpl(schema, type, options);
- }
-
- public static TableMeta newTableMeta(Schema schema, StoreType type, Options options,
- TableStat stat) {
- return new TableMetaImpl(schema, type, options, stat);
- }
-
- public static TableDesc newTableDesc(String tableName, TableMeta meta,
- Path path) {
- return new TableDescImpl(tableName, meta, path);
- }
-
- public static TableDesc newTableDesc(TableDescProto proto) {
- return new TableDescImpl(proto);
- }
-
- public static TableDesc newTableDesc(String tableName,
- Schema schema, StoreType type, Options options, Path path) {
- return new TableDescImpl(tableName, schema, type, options, path);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/function/AggFunction.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/function/AggFunction.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/function/AggFunction.java
index a337afb..38d1060 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/function/AggFunction.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/function/AggFunction.java
@@ -21,7 +21,7 @@ package tajo.catalog.function;
import com.google.gson.Gson;
import tajo.catalog.Column;
import tajo.catalog.json.GsonCreator;
-import tajo.catalog.proto.CatalogProtos;
+import tajo.common.TajoDataTypes.DataType;
import tajo.datum.Datum;
import tajo.storage.Tuple;
@@ -41,7 +41,7 @@ public abstract class AggFunction<T extends Datum> extends Function<T> {
public abstract Datum getPartialResult(FunctionContext ctx);
- public abstract CatalogProtos.DataType [] getPartialResultType();
+ public abstract DataType [] getPartialResultType();
public abstract T terminate(FunctionContext ctx);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/json/GsonCreator.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/json/GsonCreator.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/json/GsonCreator.java
index 24a817f..ee515ff 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/json/GsonCreator.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/json/GsonCreator.java
@@ -26,10 +26,12 @@ import tajo.catalog.TableMeta;
import tajo.catalog.function.AggFunction;
import tajo.catalog.function.Function;
import tajo.catalog.function.GeneralFunction;
+import tajo.common.TajoDataTypes.DataType;
import tajo.datum.Datum;
import tajo.datum.json.DatumAdapter;
import tajo.gson.ClassNameDeserializer;
import tajo.gson.ClassNameSerializer;
+import tajo.gson.DataTypeAdapter;
public class GsonCreator {
private static GsonBuilder builder;
@@ -48,6 +50,7 @@ public class GsonCreator {
builder.registerTypeAdapter(GeneralFunction.class, new FunctionAdapter());
builder.registerTypeAdapter(AggFunction.class, new FunctionAdapter());
builder.registerTypeAdapter(Datum.class, new DatumAdapter());
+ builder.registerTypeAdapter(DataType.class, new DataTypeAdapter());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/statistics/TupleUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/statistics/TupleUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/statistics/TupleUtil.java
index ab3038c..5663005 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/statistics/TupleUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/tajo/catalog/statistics/TupleUtil.java
@@ -18,37 +18,32 @@
package tajo.catalog.statistics;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import tajo.catalog.proto.CatalogProtos;
+import tajo.common.TajoDataTypes.DataType;
import tajo.datum.*;
public class TupleUtil {
- /** class logger **/
- private static final Log LOG = LogFactory.getLog(TupleUtil.class);
-
- public static Datum createFromBytes(CatalogProtos.DataType type, byte [] bytes) {
- switch (type) {
+ public static Datum createFromBytes(DataType type, byte [] bytes) {
+ switch (type.getType()) {
case BOOLEAN:
- return new BoolDatum(bytes);
- case BYTE:
- return new ByteDatum(bytes);
+ return new BooleanDatum(bytes);
+ case BLOB:
+ return new BlobDatum(bytes);
case CHAR:
return new CharDatum(bytes);
- case SHORT:
- return new ShortDatum(bytes);
- case INT:
- return new IntDatum(bytes);
- case LONG:
- return new LongDatum(bytes);
- case FLOAT:
- return new FloatDatum(bytes);
- case DOUBLE:
- return new DoubleDatum(bytes);
- case STRING:
- return new StringDatum(bytes);
- case IPv4:
- return new IPv4Datum(bytes);
+ case INT2:
+ return new Int2Datum(bytes);
+ case INT4:
+ return new Int4Datum(bytes);
+ case INT8:
+ return new Int8Datum(bytes);
+ case FLOAT4:
+ return new Float4Datum(bytes);
+ case FLOAT8:
+ return new Float8Datum(bytes);
+ case TEXT:
+ return new TextDatum(bytes);
+ case INET4:
+ return new Inet4Datum(bytes);
default: throw new UnsupportedOperationException(type + " is not supported yet");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
index dd1bf69..36b33c1 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
+++ b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
@@ -22,33 +22,12 @@ option optimize_for = SPEED;
option java_generic_services = false;
option java_generate_equals_and_hash = true;
-enum DataType {
- BOOLEAN = 0;
- BYTE = 1;
- CHAR = 2;
- BYTES = 3;
- SHORT = 4;
- INT = 5;
- BIGINT = 6;
- LONG = 7;
- FLOAT = 8;
- DOUBLE = 9;
- BIGDECIMAL = 10;
- STRING = 11;
- DATE = 12;
- IPv4 = 13;
- IPv6 = 14;
- NULL = 15;
- ANY = 16;
- ALL = 17;
- ARRAY = 18;
- STRING2 = 19;
-}
+import "DataTypes.proto";
enum StoreType {
- MEM = 0;
- CSV = 1;
- RAW = 2;
+ MEM = 0;
+ CSV = 1;
+ RAW = 2;
RCFILE = 3;
ROWFILE = 4;
HCFILE = 5;
@@ -56,147 +35,147 @@ enum StoreType {
}
enum OrderType {
- ORDER_NONE = 0;
- ASC = 1;
- DSC = 2;
+ ORDER_NONE = 0;
+ ASC = 1;
+ DSC = 2;
}
enum CompressType {
- COMP_NONE = 0;
- NULL_SUPPRESS = 1;
- RUN_LENGTH = 2;
- BIT_VECTOR = 3;
- DICTIONARY = 4;
- SNAPPY = 5;
- LZ = 6;
+ COMP_NONE = 0;
+ NULL_SUPPRESS = 1;
+ RUN_LENGTH = 2;
+ BIT_VECTOR = 3;
+ DICTIONARY = 4;
+ SNAPPY = 5;
+ LZ = 6;
}
message ColumnMetaProto {
- required DataType dataType = 1;
- required bool compressed = 2;
- required bool sorted = 3;
- required bool contiguous = 4;
- required StoreType storeType = 5;
- required CompressType compType = 6;
- required int64 startRid = 7;
- required int32 recordNum = 8;
- required int32 offsetToIndex = 9;
+ required DataType dataType = 1;
+ required bool compressed = 2;
+ required bool sorted = 3;
+ required bool contiguous = 4;
+ required StoreType storeType = 5;
+ required CompressType compType = 6;
+ required int64 startRid = 7;
+ required int32 recordNum = 8;
+ required int32 offsetToIndex = 9;
}
message ColumnProto {
- required string columnName = 1;
- required DataType dataType = 2;
+ required string columnName = 1;
+ required DataType dataType = 2;
}
message SchemaProto {
- repeated ColumnProto fields = 1;
+ repeated ColumnProto fields = 1;
}
message KeyValueProto {
- required string key = 1;
- required string value = 2;
+ required string key = 1;
+ required string value = 2;
}
message KeyValueSetProto {
- repeated KeyValueProto keyval = 1;
+ repeated KeyValueProto keyval = 1;
}
message TabletProto {
- required string id = 1;
- required string path = 2;
- required int64 startOffset = 3;
- required int64 length = 4;
- required TableProto meta = 5;
- optional TableStatProto stat = 6;
+ required string id = 1;
+ required string path = 2;
+ required int64 startOffset = 3;
+ required int64 length = 4;
+ required TableProto meta = 5;
+ optional TableStatProto stat = 6;
optional bool distCached = 7 [default = false];
}
message TableProto {
- required SchemaProto schema = 1;
- required StoreType storeType = 2;
- required KeyValueSetProto params = 3;
- optional TableStatProto stat = 4;
+ required SchemaProto schema = 1;
+ required StoreType storeType = 2;
+ required KeyValueSetProto params = 3;
+ optional TableStatProto stat = 4;
}
message TableDescProto {
- required string id = 1;
- required string path = 2;
- required TableProto meta = 3;
+ required string id = 1;
+ required string path = 2;
+ required TableProto meta = 3;
}
enum FunctionType {
- GENERAL = 0;
- AGGREGATION = 1;
+ GENERAL = 0;
+ AGGREGATION = 1;
}
message FunctionDescProto {
- required string signature = 1;
- required string className = 2;
- required FunctionType type = 3;
- repeated DataType parameterTypes = 4;
- required DataType returnType = 5;
+ required string signature = 1;
+ required string className = 2;
+ required FunctionType type = 3;
+ repeated DataType parameterTypes = 4;
+ required DataType returnType = 5;
}
message IndexDescProto {
- required string name = 1;
- required string tableId = 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 = 1;
+ required string tableId = 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];
}
enum IndexMethod {
- TWO_LEVEL_BIN_TREE = 0;
- BTREE = 1;
- HASH = 2;
- BITMAP = 3;
+ TWO_LEVEL_BIN_TREE = 0;
+ BTREE = 1;
+ HASH = 2;
+ BITMAP = 3;
}
message GetAllTableNamesResponse {
- repeated string tableName = 1;
+ repeated string tableName = 1;
}
message GetIndexRequest {
- required string tableName = 1;
- required string columnName = 2;
+ required string tableName = 1;
+ required string columnName = 2;
}
message GetFunctionsResponse {
- repeated FunctionDescProto functionDesc = 1;
+ repeated FunctionDescProto functionDesc = 1;
}
message UnregisterFunctionRequest {
- required string signature = 1;
- repeated DataType parameterTypes = 2;
+ required string signature = 1;
+ repeated DataType parameterTypes = 2;
}
message GetFunctionMetaRequest {
- required string signature = 1;
- repeated DataType parameterTypes = 2;
+ required string signature = 1;
+ repeated DataType parameterTypes = 2;
}
message ContainFunctionRequest {
- required string signature = 1;
- repeated DataType parameterTypes = 2;
+ required string signature = 1;
+ repeated DataType parameterTypes = 2;
}
message TableStatProto {
- required int64 numRows = 1;
- required int64 numBytes = 2;
- optional int32 numBlocks = 3;
- optional int32 numPartitions = 4;
- optional int64 avgRows = 5;
- repeated ColumnStatProto colStat = 6;
+ required int64 numRows = 1;
+ required int64 numBytes = 2;
+ optional int32 numBlocks = 3;
+ optional int32 numPartitions = 4;
+ optional int64 avgRows = 5;
+ repeated ColumnStatProto colStat = 6;
}
message ColumnStatProto {
- required ColumnProto column = 1;
- optional int64 numDistVal = 2;
- optional int64 numNulls = 3;
- optional bytes minValue = 4;
- optional bytes maxValue = 5;
+ required ColumnProto column = 1;
+ optional int64 numDistVal = 2;
+ optional int64 numNulls = 3;
+ optional bytes minValue = 4;
+ optional bytes maxValue = 5;
}
enum StatType {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestCatalogUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestCatalogUtil.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestCatalogUtil.java
index 5d85461..a5a2279 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestCatalogUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestCatalogUtil.java
@@ -19,15 +19,15 @@
package tajo.catalog;
import org.junit.Test;
-import tajo.catalog.proto.CatalogProtos.DataType;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
public class TestCatalogUtil {
@Test
public final void testGetCanonicalName() {
- String canonical = TCatUtil.getCanonicalName("sum",
- new DataType[]{DataType.INT, DataType.LONG});
- assertEquals("sum(INT,LONG)", canonical);
+ String canonical = CatalogUtil.getCanonicalName("sum",
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8));
+ assertEquals("sum(INT4,INT8)", canonical);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestColumn.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestColumn.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestColumn.java
index 2502b82..f434573 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestColumn.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestColumn.java
@@ -22,7 +22,8 @@ import com.google.gson.Gson;
import org.junit.Before;
import org.junit.Test;
import tajo.catalog.json.GsonCreator;
-import tajo.catalog.proto.CatalogProtos.DataType;
+import tajo.common.TajoDataTypes.DataType;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -32,12 +33,9 @@ public class TestColumn {
static final String FieldName2="f2";
static final String FieldName3="f3";
- static final DataType Type1 = DataType.BYTE;
- static final DataType Type2 = DataType.INT;
- static final DataType Type3 = DataType.LONG;
-
- static final int Len2 = 10;
- static final int Len3 = 12;
+ static final DataType Type1 = CatalogUtil.newDataTypeWithoutLen(Type.BLOB);
+ static final DataType Type2 = CatalogUtil.newDataTypeWithoutLen(Type.INT4);
+ static final DataType Type3 = CatalogUtil.newDataTypeWithoutLen(Type.INT8);
Column field1;
Column field2;
@@ -45,9 +43,9 @@ public class TestColumn {
@Before
public void setUp() {
- field1 = new Column(FieldName1, DataType.BYTE);
- field2 = new Column(FieldName2, DataType.INT );
- field3 = new Column(FieldName3, DataType.LONG);
+ field1 = new Column(FieldName1, Type.BLOB);
+ field2 = new Column(FieldName2, Type.INT4);
+ field3 = new Column(FieldName3, Type.INT8);
}
@Test
@@ -77,7 +75,7 @@ public class TestColumn {
@Test
public final void testQualifiedName() {
- Column col = new Column("table_1.id", DataType.INT);
+ Column col = new Column("table_1.id", Type.INT4);
assertTrue(col.isQualified());
assertEquals("id", col.getColumnName());
@@ -86,7 +84,7 @@ public class TestColumn {
}
@Test
- public final void testToSon() {
+ public final void testToJson() {
Column col = new Column(field1.getProto());
String json = col.toJSON();
System.out.println(json);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestFunctionDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestFunctionDesc.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestFunctionDesc.java
index 49fc09f..33b1de1 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestFunctionDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestFunctionDesc.java
@@ -22,9 +22,10 @@ import com.google.gson.Gson;
import org.junit.Test;
import tajo.catalog.function.GeneralFunction;
import tajo.catalog.json.GsonCreator;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.FunctionDescProto;
import tajo.catalog.proto.CatalogProtos.FunctionType;
+import tajo.common.TajoDataTypes;
+import tajo.common.TajoDataTypes.Type;
import tajo.datum.Datum;
import tajo.datum.DatumFactory;
import tajo.exception.InternalException;
@@ -45,15 +46,15 @@ public class TestFunctionDesc {
private Integer y;
public TestSum() {
- super(new Column[] { new Column("arg1", DataType.INT),
- new Column("arg2", DataType.INT) });
+ super(new Column[] { new Column("arg1", TajoDataTypes.Type.INT4),
+ new Column("arg2", TajoDataTypes.Type.INT4) });
}
@Override
public Datum eval(Tuple params) {
- x = params.get(0).asInt();
- y = params.get(1).asInt();
- return DatumFactory.createInt(x + y);
+ x = params.get(0).asInt4();
+ y = params.get(1).asInt4();
+ return DatumFactory.createInt4(x + y);
}
public String toJSON() {
@@ -65,13 +66,13 @@ public class TestFunctionDesc {
@Test
public void testGetSignature() throws IOException {
FunctionDesc desc = new FunctionDesc("sum", TestSum.class, FunctionType.GENERAL,
- new DataType [] {DataType.INT},
- new DataType [] {DataType.INT,DataType.LONG});
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4),
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8));
assertEquals("sum", desc.getSignature());
assertEquals(TestSum.class, desc.getFuncClass());
assertEquals(FunctionType.GENERAL, desc.getFuncType());
- assertEquals(DataType.INT, desc.getReturnType()[0]);
- assertArrayEquals(new DataType[] { DataType.INT, DataType.LONG },
+ assertEquals(Type.INT4, desc.getReturnType()[0].getType());
+ assertArrayEquals(CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8),
desc.getParamTypes());
CommonTestingUtil.getTestDir(TEST_PATH);
@@ -85,8 +86,8 @@ public class TestFunctionDesc {
assertEquals("sum", newDesc.getSignature());
assertEquals(TestSum.class, newDesc.getFuncClass());
assertEquals(FunctionType.GENERAL, newDesc.getFuncType());
- assertEquals(DataType.INT, newDesc.getReturnType()[0]);
- assertArrayEquals(new DataType[] { DataType.INT, DataType.LONG },
+ assertEquals(Type.INT4, newDesc.getReturnType()[0].getType());
+ assertArrayEquals(CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8),
newDesc.getParamTypes());
assertEquals(desc.getProto(), newDesc.getProto());
@@ -95,8 +96,8 @@ public class TestFunctionDesc {
@Test
public void testJson() throws InternalException {
FunctionDesc desc = new FunctionDesc("sum", TestSum.class, FunctionType.GENERAL,
- new DataType [] {DataType.INT},
- new DataType [] {DataType.INT,DataType.LONG});
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4),
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8));
String json = desc.toJSON();
System.out.println(json);
Gson gson = GsonCreator.getInstance();
@@ -105,8 +106,8 @@ public class TestFunctionDesc {
assertEquals("sum", fromJson.getSignature());
assertEquals(TestSum.class, fromJson.getFuncClass());
assertEquals(FunctionType.GENERAL, fromJson.getFuncType());
- assertEquals(DataType.INT, fromJson.getReturnType()[0]);
- assertArrayEquals(new DataType[] { DataType.INT, DataType.LONG },
+ assertEquals(Type.INT4, fromJson.getReturnType()[0].getType());
+ assertArrayEquals(CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8),
fromJson.getParamTypes());
assertEquals(desc.getProto(), fromJson.getProto());
@@ -115,8 +116,8 @@ public class TestFunctionDesc {
@Test
public void testClone() throws CloneNotSupportedException {
FunctionDesc desc = new FunctionDesc("sum", TestSum.class, FunctionType.GENERAL,
- new DataType [] {DataType.INT},
- new DataType [] {DataType.INT,DataType.LONG});
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4),
+ CatalogUtil.newDataTypesWithoutLen(Type.INT4, Type.INT8));
FunctionDesc cloned = (FunctionDesc)desc.clone();
assertTrue("reference chk" , !(desc == cloned));
assertTrue("getClass() chk", desc.getClass() == cloned.getClass());
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestIndexDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestIndexDesc.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestIndexDesc.java
index afbfe5a..c8eb166 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestIndexDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestIndexDesc.java
@@ -21,9 +21,9 @@ package tajo.catalog;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.IndexDescProto;
import tajo.catalog.proto.CatalogProtos.IndexMethod;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
@@ -35,15 +35,15 @@ public class TestIndexDesc {
static {
desc1 = new IndexDesc(
- "idx_test", "indexed", new Column("id", DataType.INT),
+ "idx_test", "indexed", new Column("id", Type.INT4),
IndexMethod.TWO_LEVEL_BIN_TREE, true, true, true);
desc2 = new IndexDesc(
- "idx_test2", "indexed", new Column("score", DataType.DOUBLE),
+ "idx_test2", "indexed", new Column("score", Type.FLOAT8),
IndexMethod.TWO_LEVEL_BIN_TREE, false, false, false);
desc3 = new IndexDesc(
- "idx_test", "indexed", new Column("id", DataType.INT),
+ "idx_test", "indexed", new Column("id", Type.INT4),
IndexMethod.TWO_LEVEL_BIN_TREE, true, true, true);
}
@@ -66,7 +66,7 @@ public class TestIndexDesc {
public void testGetFields() {
assertEquals("idx_test", desc1.getName());
assertEquals("indexed", desc1.getTableId());
- assertEquals(new Column("id", DataType.INT), desc1.getColumn());
+ assertEquals(new Column("id", Type.INT4), desc1.getColumn());
assertEquals(IndexMethod.TWO_LEVEL_BIN_TREE, desc1.getIndexMethod());
assertEquals(true, desc1.isUnique());
assertEquals(true, desc1.isClustered());
@@ -74,7 +74,7 @@ public class TestIndexDesc {
assertEquals("idx_test2", desc2.getName());
assertEquals("indexed", desc2.getTableId());
- assertEquals(new Column("score", DataType.DOUBLE), desc2.getColumn());
+ assertEquals(new Column("score", Type.FLOAT8), desc2.getColumn());
assertEquals(IndexMethod.TWO_LEVEL_BIN_TREE, desc2.getIndexMethod());
assertEquals(false, desc2.isUnique());
assertEquals(false, desc2.isClustered());
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestSchema.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestSchema.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestSchema.java
index 8b5bee3..e23790b 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestSchema.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestSchema.java
@@ -23,8 +23,8 @@ import org.junit.Before;
import org.junit.Test;
import tajo.catalog.exception.AlreadyExistsFieldException;
import tajo.catalog.json.GsonCreator;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.SchemaProto;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.*;
@@ -38,11 +38,11 @@ public class TestSchema {
@Before
public void setUp() throws Exception {
schema = new Schema();
- col1 = new Column("name", DataType.STRING);
+ col1 = new Column("name", Type.TEXT);
schema.addColumn(col1);
- col2 = new Column("age", DataType.INT);
+ col2 = new Column("age", Type.INT4);
schema.addColumn(col2);
- col3 = new Column("addr", DataType.STRING);
+ col3 = new Column("addr", Type.TEXT);
schema.addColumn(col3);
}
@@ -71,16 +71,16 @@ public class TestSchema {
public final void testAddField() {
Schema schema = new Schema();
assertFalse(schema.contains("studentId"));
- schema.addColumn("studentId", DataType.INT);
+ schema.addColumn("studentId", Type.INT4);
assertTrue(schema.contains("studentId"));
}
@Test
public final void testEqualsObject() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.STRING);
- schema2.addColumn("age", DataType.INT);
- schema2.addColumn("addr", DataType.STRING);
+ schema2.addColumn("name", Type.TEXT);
+ schema2.addColumn("age", Type.INT4);
+ schema2.addColumn("addr", Type.TEXT);
assertEquals(schema, schema2);
}
@@ -97,8 +97,8 @@ public class TestSchema {
@Test
public final void testClone() throws CloneNotSupportedException {
Schema schema = new Schema();
- schema.addColumn("abc", DataType.DOUBLE);
- schema.addColumn("bbc", DataType.DOUBLE);
+ schema.addColumn("abc", Type.FLOAT8);
+ schema.addColumn("bbc", Type.FLOAT8);
Schema schema2 = new Schema(schema.getProto());
assertEquals(schema.getProto(), schema2.getProto());
@@ -114,9 +114,9 @@ public class TestSchema {
@Test(expected = AlreadyExistsFieldException.class)
public final void testAddExistColumn() {
Schema schema = new Schema();
- schema.addColumn("abc", DataType.DOUBLE);
- schema.addColumn("bbc", DataType.DOUBLE);
- schema.addColumn("abc", DataType.INT);
+ schema.addColumn("abc", Type.FLOAT8);
+ schema.addColumn("bbc", Type.FLOAT8);
+ schema.addColumn("abc", Type.INT4);
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableDesc.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableDesc.java
index f3c60cf..23e6dbc 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableDesc.java
@@ -23,8 +23,8 @@ import org.apache.hadoop.fs.Path;
import org.junit.Before;
import org.junit.Test;
import tajo.catalog.json.GsonCreator;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.StoreType;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
@@ -35,9 +35,9 @@ public class TestTableDesc {
@Before
public void setup() {
Schema schema = new Schema();
- schema.addColumn("name", DataType.BYTE);
- schema.addColumn("addr", DataType.STRING);
- info = TCatUtil.newTableMeta(schema, StoreType.CSV);
+ schema.addColumn("name", Type.BLOB);
+ schema.addColumn("addr", Type.TEXT);
+ info = CatalogUtil.newTableMeta(schema, StoreType.CSV);
desc = new TableDescImpl("table1", info, new Path("/nta/data"));
}
@@ -45,9 +45,9 @@ public class TestTableDesc {
@Test
public void test() throws CloneNotSupportedException {
Schema schema = new Schema();
- schema.addColumn("name", DataType.BYTE);
- schema.addColumn("addr", DataType.STRING);
- TableMeta info = TCatUtil.newTableMeta(schema, StoreType.CSV);
+ schema.addColumn("name", Type.BLOB);
+ schema.addColumn("addr", Type.TEXT);
+ TableMeta info = CatalogUtil.newTableMeta(schema, StoreType.CSV);
testClone(info);
TableDesc desc = new TableDescImpl("table1", info, new Path("/nta/data"));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableInfo.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableInfo.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableInfo.java
index 052bbfe..6b0e1e5 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableInfo.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableInfo.java
@@ -20,9 +20,9 @@ package tajo.catalog;
import org.junit.Before;
import org.junit.Test;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.StoreType;
import tajo.catalog.proto.CatalogProtos.TableProto;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.*;
@@ -33,17 +33,17 @@ public class TestTableInfo {
@Before
public void setUp() {
schema = new Schema();
- schema.addColumn("name", DataType.BYTE);
- schema.addColumn("addr", DataType.STRING);
- meta = TCatUtil.newTableMeta(schema, StoreType.CSV);
+ schema.addColumn("name", Type.BLOB);
+ schema.addColumn("addr", Type.TEXT);
+ meta = CatalogUtil.newTableMeta(schema, StoreType.CSV);
}
@Test
public void testTableMetaTableProto() {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableMeta meta2 = new TableMetaImpl(meta1.getProto());
assertEquals(meta1, meta2);
@@ -52,9 +52,9 @@ public class TestTableInfo {
@Test
public final void testClone() throws CloneNotSupportedException {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableMetaImpl info = (TableMetaImpl) meta1;
@@ -67,9 +67,9 @@ public class TestTableInfo {
@Test
public void testSchema() throws CloneNotSupportedException {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableMeta meta2 = (TableMeta) meta1.clone();
@@ -84,8 +84,8 @@ public class TestTableInfo {
@Test
public void testGetSchema() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.BYTE);
- schema2.addColumn("addr", DataType.STRING);
+ schema2.addColumn("name", Type.BLOB);
+ schema2.addColumn("addr", Type.TEXT);
assertEquals(schema, schema2);
}
@@ -93,9 +93,9 @@ public class TestTableInfo {
@Test
public void testSetSchema() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.BYTE);
- schema2.addColumn("addr", DataType.STRING);
- schema2.addColumn("age", DataType.INT);
+ schema2.addColumn("name", Type.BLOB);
+ schema2.addColumn("addr", Type.TEXT);
+ schema2.addColumn("age", Type.INT4);
assertNotSame(meta.getSchema(), schema2);
meta.setSchema(schema2);
@@ -105,9 +105,9 @@ public class TestTableInfo {
@Test
public void testEqualsObject() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.BYTE);
- schema2.addColumn("addr", DataType.STRING);
- TableMeta meta2 = TCatUtil.newTableMeta(schema2, StoreType.CSV);
+ schema2.addColumn("name", Type.BLOB);
+ schema2.addColumn("addr", Type.TEXT);
+ TableMeta meta2 = CatalogUtil.newTableMeta(schema2, StoreType.CSV);
assertTrue(meta.equals(meta2));
@@ -117,9 +117,9 @@ public class TestTableInfo {
@Test
public void testGetProto() {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableProto proto = meta1.getProto();
TableMeta newMeta = new TableMetaImpl(proto);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableMeta.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableMeta.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableMeta.java
index e388375..d393f32 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableMeta.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/TestTableMeta.java
@@ -20,9 +20,9 @@ package tajo.catalog;
import org.junit.Before;
import org.junit.Test;
-import tajo.catalog.proto.CatalogProtos.DataType;
import tajo.catalog.proto.CatalogProtos.StoreType;
import tajo.catalog.proto.CatalogProtos.TableProto;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.*;
@@ -33,17 +33,17 @@ public class TestTableMeta {
@Before
public void setUp() {
schema = new Schema();
- schema.addColumn("name", DataType.BYTE);
- schema.addColumn("addr", DataType.STRING);
- meta = TCatUtil.newTableMeta(schema, StoreType.CSV);
+ schema.addColumn("name", Type.BLOB);
+ schema.addColumn("addr", Type.TEXT);
+ meta = CatalogUtil.newTableMeta(schema, StoreType.CSV);
}
@Test
public void testTableMetaTableProto() {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableMeta meta2 = new TableMetaImpl(meta1.getProto());
assertEquals(meta1, meta2);
@@ -52,9 +52,9 @@ public class TestTableMeta {
@Test
public final void testClone() throws CloneNotSupportedException {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableMetaImpl meta2 = (TableMetaImpl) meta1.clone();
assertEquals(meta1.getSchema(), meta2.getSchema());
@@ -65,9 +65,9 @@ public class TestTableMeta {
@Test
public void testSchema() throws CloneNotSupportedException {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableMeta meta2 = (TableMeta) meta1.clone();
@@ -82,8 +82,8 @@ public class TestTableMeta {
@Test
public void testGetSchema() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.BYTE);
- schema2.addColumn("addr", DataType.STRING);
+ schema2.addColumn("name", Type.BLOB);
+ schema2.addColumn("addr", Type.TEXT);
assertEquals(schema, schema2);
}
@@ -91,9 +91,9 @@ public class TestTableMeta {
@Test
public void testSetSchema() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.BYTE);
- schema2.addColumn("addr", DataType.STRING);
- schema2.addColumn("age", DataType.INT);
+ schema2.addColumn("name", Type.BLOB);
+ schema2.addColumn("addr", Type.TEXT);
+ schema2.addColumn("age", Type.INT4);
assertNotSame(meta.getSchema(), schema2);
meta.setSchema(schema2);
@@ -103,9 +103,9 @@ public class TestTableMeta {
@Test
public void testEqualsObject() {
Schema schema2 = new Schema();
- schema2.addColumn("name", DataType.BYTE);
- schema2.addColumn("addr", DataType.STRING);
- TableMeta meta2 = TCatUtil.newTableMeta(schema2, StoreType.CSV);
+ schema2.addColumn("name", Type.BLOB);
+ schema2.addColumn("addr", Type.TEXT);
+ TableMeta meta2 = CatalogUtil.newTableMeta(schema2, StoreType.CSV);
assertTrue(meta.equals(meta2));
@@ -115,9 +115,9 @@ public class TestTableMeta {
@Test
public void testGetProto() {
Schema schema1 = new Schema();
- schema1.addColumn("name", DataType.BYTE);
- schema1.addColumn("addr", DataType.STRING);
- TableMeta meta1 = TCatUtil.newTableMeta(schema1, StoreType.CSV);
+ schema1.addColumn("name", Type.BLOB);
+ schema1.addColumn("addr", Type.TEXT);
+ TableMeta meta1 = CatalogUtil.newTableMeta(schema1, StoreType.CSV);
TableProto proto = meta1.getProto();
TableMeta newMeta = new TableMetaImpl(proto);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestColumnStat.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestColumnStat.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestColumnStat.java
index 9af4453..cffd42f 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestColumnStat.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestColumnStat.java
@@ -20,7 +20,7 @@ package tajo.catalog.statistics;
import org.junit.Test;
import tajo.catalog.Column;
-import tajo.catalog.proto.CatalogProtos;
+import tajo.common.TajoDataTypes.Type;
import tajo.datum.DatumFactory;
import static org.junit.Assert.assertEquals;
@@ -30,7 +30,7 @@ public class TestColumnStat {
@Test
public final void testColumnStat() {
- ColumnStat stat = new ColumnStat(new Column("test", CatalogProtos.DataType.LONG));
+ ColumnStat stat = new ColumnStat(new Column("test", Type.INT8));
stat.setNumDistVals(1000);
stat.setNumNulls(999);
@@ -44,11 +44,11 @@ public class TestColumnStat {
@Test
public final void testEqualsObject() {
- ColumnStat stat = new ColumnStat(new Column("test", CatalogProtos.DataType.LONG));
+ ColumnStat stat = new ColumnStat(new Column("test", Type.INT8));
stat.setNumDistVals(1000);
stat.setNumNulls(999);
- stat.setMinValue(DatumFactory.createLong(5));
- stat.setMaxValue(DatumFactory.createLong(10));
+ stat.setMinValue(DatumFactory.createInt8(5));
+ stat.setMaxValue(DatumFactory.createInt8(10));
ColumnStat stat2 = new ColumnStat(stat.getProto());
assertEquals(stat, stat2);
@@ -56,11 +56,11 @@ public class TestColumnStat {
@Test
public final void testClone() throws CloneNotSupportedException {
- ColumnStat stat = new ColumnStat(new Column("test", CatalogProtos.DataType.LONG));
+ ColumnStat stat = new ColumnStat(new Column("test", Type.INT8));
stat.setNumDistVals(1000);
stat.setNumNulls(999);
- stat.setMinValue(DatumFactory.createLong(5));
- stat.setMaxValue(DatumFactory.createLong(10));
+ stat.setMinValue(DatumFactory.createInt8(5));
+ stat.setMaxValue(DatumFactory.createInt8(10));
ColumnStat stat2 = (ColumnStat) stat.clone();
assertEquals(stat, stat2);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/c1c6f83e/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestTableStat.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestTableStat.java b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestTableStat.java
index 3237d25..d679c69 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestTableStat.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/tajo/catalog/statistics/TestTableStat.java
@@ -20,7 +20,7 @@ package tajo.catalog.statistics;
import org.junit.Test;
import tajo.catalog.Column;
-import tajo.catalog.proto.CatalogProtos;
+import tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -38,7 +38,7 @@ public class TestTableStat {
int numCols = 3;
ColumnStat[] cols = new ColumnStat[numCols];
for (int i = 0; i < numCols; i++) {
- cols[i] = new ColumnStat(new Column("col_" + i, CatalogProtos.DataType.LONG));
+ cols[i] = new ColumnStat(new Column("col_" + i, Type.INT8));
cols[i].setNumDistVals(1024 * i);
cols[i].setNumNulls(100 * i);
stat.addColumnStat(cols[i]);