http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestTablesResource.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestTablesResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestTablesResource.java index 9d42102..381c044 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestTablesResource.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestTablesResource.java @@ -23,6 +23,7 @@ import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.TableDesc; import org.apache.tajo.conf.TajoConf.ConfVars; import org.apache.tajo.error.Errors.ResultCode; +import org.apache.tajo.plan.serder.PlanGsonHelper; import org.apache.tajo.ws.rs.netty.gson.GsonFeature; import org.apache.tajo.ws.rs.requests.NewSessionRequest; import org.apache.tajo.ws.rs.requests.SubmitQueryRequest; @@ -74,7 +75,7 @@ public class TestTablesResource extends QueryTestCaseBase { queriesURI = new URI(restServiceURI + "/queries"); sessionsURI = new URI(restServiceURI + "/sessions"); restClient = ClientBuilder.newBuilder() - .register(new GsonFeature(RestTestUtils.registerTypeAdapterMap())) + .register(new GsonFeature(PlanGsonHelper.registerAdapters())) .register(LoggingFilter.class) .property(ClientProperties.FEATURE_AUTO_DISCOVERY_DISABLE, true) .property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, true)
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/benchmark/TPCH.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/benchmark/TPCH.java b/tajo-core/src/main/java/org/apache/tajo/benchmark/TPCH.java index 8472020..9ccfeb7 100644 --- a/tajo-core/src/main/java/org/apache/tajo/benchmark/TPCH.java +++ b/tajo-core/src/main/java/org/apache/tajo/benchmark/TPCH.java @@ -24,6 +24,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.partition.PartitionMethodDesc; import org.apache.tajo.catalog.proto.CatalogProtos; @@ -69,7 +70,7 @@ public class TPCH extends BenchmarkSet { @Override public void loadSchemas() { - Schema lineitem = new Schema() + Schema lineitem = SchemaFactory.newV1() .addColumn("l_orderkey", Type.INT4) // 0 .addColumn("l_partkey", Type.INT4) // 1 .addColumn("l_suppkey", Type.INT4) // 2 @@ -90,7 +91,7 @@ public class TPCH extends BenchmarkSet { .addColumn("l_comment", Type.TEXT); // 15 schemas.put(LINEITEM, lineitem); - Schema customer = new Schema() + Schema customer = SchemaFactory.newV1() .addColumn("c_custkey", Type.INT4) // 0 .addColumn("c_name", Type.TEXT) // 1 .addColumn("c_address", Type.TEXT) // 2 @@ -101,7 +102,7 @@ public class TPCH extends BenchmarkSet { .addColumn("c_comment", Type.TEXT); // 7 schemas.put(CUSTOMER, customer); - Schema customerParts = new Schema() + Schema customerParts = SchemaFactory.newV1() .addColumn("c_custkey", Type.INT4) // 0 .addColumn("c_name", Type.TEXT) // 1 .addColumn("c_address", Type.TEXT) // 2 @@ -111,14 +112,14 @@ public class TPCH extends BenchmarkSet { .addColumn("c_comment", Type.TEXT); // 6 schemas.put(CUSTOMER_PARTS, customerParts); - Schema nation = new Schema() + Schema nation = SchemaFactory.newV1() .addColumn("n_nationkey", Type.INT4) // 0 .addColumn("n_name", Type.TEXT) // 1 .addColumn("n_regionkey", Type.INT4) // 2 .addColumn("n_comment", Type.TEXT); // 3 schemas.put(NATION, nation); - Schema part = new Schema() + Schema part = SchemaFactory.newV1() .addColumn("p_partkey", Type.INT4) // 0 .addColumn("p_name", Type.TEXT) // 1 .addColumn("p_mfgr", Type.TEXT) // 2 @@ -130,13 +131,13 @@ public class TPCH extends BenchmarkSet { .addColumn("p_comment", Type.TEXT); // 8 schemas.put(PART, part); - Schema region = new Schema() + Schema region = SchemaFactory.newV1() .addColumn("r_regionkey", Type.INT4) // 0 .addColumn("r_name", Type.TEXT) // 1 .addColumn("r_comment", Type.TEXT); // 2 schemas.put(REGION, region); - Schema orders = new Schema() + Schema orders = SchemaFactory.newV1() .addColumn("o_orderkey", Type.INT4) // 0 .addColumn("o_custkey", Type.INT4) // 1 .addColumn("o_orderstatus", Type.TEXT) // 2 @@ -151,7 +152,7 @@ public class TPCH extends BenchmarkSet { schemas.put(EMPTY_ORDERS, orders); - Schema partsupp = new Schema() + Schema partsupp = SchemaFactory.newV1() .addColumn("ps_partkey", Type.INT4) // 0 .addColumn("ps_suppkey", Type.INT4) // 1 .addColumn("ps_availqty", Type.INT4) // 2 @@ -159,7 +160,7 @@ public class TPCH extends BenchmarkSet { .addColumn("ps_comment", Type.TEXT); // 4 schemas.put(PARTSUPP, partsupp); - Schema supplier = new Schema() + Schema supplier = SchemaFactory.newV1() .addColumn("s_suppkey", Type.INT4) // 0 .addColumn("s_name", Type.TEXT) // 1 .addColumn("s_address", Type.TEXT) // 2 @@ -171,7 +172,7 @@ public class TPCH extends BenchmarkSet { } public void loadOutSchema() { - Schema q2 = new Schema() + Schema q2 = SchemaFactory.newV1() .addColumn("s_acctbal", Type.FLOAT8) .addColumn("s_name", Type.TEXT) .addColumn("n_name", Type.TEXT) @@ -207,7 +208,7 @@ public class TPCH extends BenchmarkSet { PartitionMethodDesc partitionMethodDesc = null; if (tableName.equals(CUSTOMER_PARTS)) { - Schema expressionSchema = new Schema(); + Schema expressionSchema = SchemaFactory.newV1(); expressionSchema.addColumn("c_nationkey", TajoDataTypes.Type.INT4); partitionMethodDesc = new PartitionMethodDesc( tajo.getCurrentDatabase(), http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/json/CoreGsonHelper.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/json/CoreGsonHelper.java b/tajo-core/src/main/java/org/apache/tajo/engine/json/CoreGsonHelper.java index ea5e13d..a922ca8 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/json/CoreGsonHelper.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/json/CoreGsonHelper.java @@ -21,8 +21,10 @@ package org.apache.tajo.engine.json; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.apache.hadoop.fs.Path; +import org.apache.tajo.catalog.Schema; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.json.FunctionAdapter; +import org.apache.tajo.catalog.json.SchemaAdapter; import org.apache.tajo.catalog.json.TableMetaAdapter; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.datum.Datum; @@ -34,6 +36,7 @@ import org.apache.tajo.plan.logical.LogicalNode; import org.apache.tajo.function.Function; import org.apache.tajo.plan.serder.EvalNodeAdapter; import org.apache.tajo.plan.serder.LogicalNodeAdapter; +import org.apache.tajo.plan.serder.PlanGsonHelper; import java.lang.reflect.Type; import java.util.HashMap; @@ -46,27 +49,10 @@ public class CoreGsonHelper { private CoreGsonHelper() { } - - private static Map<Type, GsonSerDerAdapter> registerAdapters() { - Map<Type, GsonSerDerAdapter> adapters = new HashMap<>(); - adapters.put(Path.class, new PathSerializer()); - adapters.put(Class.class, new ClassNameSerializer()); - adapters.put(LogicalNode.class, new LogicalNodeAdapter()); - adapters.put(EvalNode.class, new EvalNodeAdapter()); - adapters.put(TableMeta.class, new TableMetaAdapter()); - adapters.put(Function.class, new FunctionAdapter()); - adapters.put(GeneralFunction.class, new FunctionAdapter()); - adapters.put(AggFunction.class, new FunctionAdapter()); - adapters.put(Datum.class, new DatumAdapter()); - adapters.put(DataType.class, new DataTypeAdapter()); - adapters.put(TimeZone.class, new TimeZoneGsonSerdeAdapter()); - - return adapters; - } public static Gson getInstance() { if (gson == null ) { - GsonHelper helper = new GsonHelper(registerAdapters()); + GsonHelper helper = new GsonHelper(PlanGsonHelper.registerAdapters()); gson = helper.getGson(); } return gson; @@ -77,7 +63,7 @@ public class CoreGsonHelper { GsonBuilder prettyBuilder = new GsonBuilder() .setPrettyPrinting() .excludeFieldsWithoutExposeAnnotation(); - GsonHelper.registerAdapters(prettyBuilder, registerAdapters()); + GsonHelper.registerAdapters(prettyBuilder, PlanGsonHelper.registerAdapters()); gsonPretty = prettyBuilder.create(); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/DataChannel.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/DataChannel.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/DataChannel.java index 10e9973..3e6e6bf 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/DataChannel.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/DataChannel.java @@ -23,6 +23,7 @@ import org.apache.tajo.BuiltinStorages; import org.apache.tajo.ExecutionBlockId; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SchemaUtil; import org.apache.tajo.util.StringUtils; @@ -68,7 +69,7 @@ public class DataChannel { this.transmitType = proto.getTransmitType(); this.shuffleType = proto.getShuffleType(); if (proto.hasSchema()) { - this.setSchema(new Schema(proto.getSchema())); + this.setSchema(SchemaFactory.newV1(proto.getSchema())); } if (proto.getShuffleKeysCount() > 0) { shuffleKeys = new Column[proto.getShuffleKeysCount()]; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java index 8f7673b..eb8f7ad 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java @@ -23,6 +23,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.proto.CatalogProtos.SortSpecProto; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.engine.planner.global.DataChannel; @@ -644,7 +645,7 @@ public class DistinctGroupbyBuilder { //Set SecondStage ColumnId and Input schema secondStageDistinctNode.setResultColumnIds(secondStageColumnIds); - Schema secondStageInSchema = new Schema(); + Schema secondStageInSchema = SchemaFactory.newV1(); //TODO merged tuple schema int index = 0; for(GroupbyNode eachNode: secondStageDistinctNode.getSubPlans()) { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java index 89c5b3d..8002989 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java @@ -22,6 +22,7 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SortSpec; import org.apache.tajo.catalog.proto.CatalogProtos; import org.apache.tajo.catalog.proto.CatalogProtos.FragmentProto; @@ -93,7 +94,7 @@ public class BSTIndexScanExec extends ScanExec { } private static Schema mergeSubSchemas(Schema originalSchema, Schema subSchema, List<Target> targets, EvalNode qual) { - Schema mergedSchema = new Schema(); + Schema mergedSchema = SchemaFactory.newV1(); Set<Column> qualAndTargets = new HashSet<>(); qualAndTargets.addAll(EvalTreeUtil.findUniqueColumns(qual)); for (Target target : targets) { @@ -131,7 +132,7 @@ public class BSTIndexScanExec extends ScanExec { // in the case where projected column or expression are given // the target can be an empty list. if (plan.hasTargets()) { - projected = new Schema(); + projected = SchemaFactory.newV1(); Set<Column> columnSet = new HashSet<>(); if (plan.hasQual()) { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java index bc667cb..1142095 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java @@ -25,10 +25,7 @@ import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.tajo.SessionVars; -import org.apache.tajo.catalog.CatalogUtil; -import org.apache.tajo.catalog.Column; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.catalog.*; import org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto; import org.apache.tajo.catalog.proto.CatalogProtos.PartitionKeyProto; import org.apache.tajo.catalog.statistics.TableStats; @@ -87,7 +84,7 @@ public abstract class ColPartitionStoreExec extends UnaryPhysicalExec { if (plan.getType() == NodeType.INSERT && keyNum > 0) { Column[] removedPartitionColumns = new Column[this.outSchema.size() - keyNum]; System.arraycopy(this.outSchema.toArray(), 0, removedPartitionColumns, 0, removedPartitionColumns.length); - this.outSchema = new Schema(removedPartitionColumns); + this.outSchema = SchemaFactory.newV1(removedPartitionColumns); } keyIds = new int[keyNum]; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java index 3ddad1e..04b23f8 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java @@ -142,7 +142,7 @@ public class SeqScanExec extends ScanExec { // in the case where projected column or expression are given // the target can be an empty list. if (plan.hasTargets()) { - projected = new Schema(); + projected = SchemaFactory.newV1(); Set<Column> columnSet = new HashSet<>(); if (plan.hasQual()) { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java index 44845e7..04a4a19 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/WindowAggExec.java @@ -21,6 +21,7 @@ package org.apache.tajo.engine.planner.physical; import com.google.common.collect.Lists; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SortSpec; import org.apache.tajo.datum.Datum; import org.apache.tajo.plan.expr.EvalNode; @@ -119,7 +120,7 @@ public class WindowAggExec extends UnaryPhysicalExec { endCurrentRowFlags = new boolean[functions.length]; List<Column> additionalSortKeyColumns = Lists.newArrayList(); - Schema rewrittenSchema = new Schema(outSchema); + Schema rewrittenSchema = SchemaFactory.newV1(outSchema); for (int i = 0; i < functions.length; i++) { WindowSpec.WindowEndBound endBound = functions[i].getWindowFrame().getEndBound(); switch (endBound.getBoundType()) { @@ -160,7 +161,7 @@ public class WindowAggExec extends UnaryPhysicalExec { } sortKeyColumns = new int[additionalSortKeyColumns.size()]; - schemaForOrderBy = new Schema(outSchema); + schemaForOrderBy = SchemaFactory.newV1(outSchema); for (int i = 0; i < additionalSortKeyColumns.size(); i++) { sortKeyColumns[i] = i; schemaForOrderBy.addColumn(additionalSortKeyColumns.get(i)); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java b/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java index bfba51d..205329b 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java @@ -876,7 +876,7 @@ public class TajoMasterClientService extends AbstractService { Schema schema = null; if (request.hasSchema()) { - schema = new Schema(request.getSchema()); + schema = SchemaFactory.newV1(request.getSchema()); } TableMeta meta = new TableMeta(request.getMeta()); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java index 2740728..47d4b4f 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/ExplainPlanPreprocessorForTest.java @@ -21,6 +21,7 @@ package org.apache.tajo.master.exec; import org.apache.hadoop.fs.Path; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.exception.TajoException; import org.apache.tajo.plan.LogicalPlan; import org.apache.tajo.plan.Target; @@ -154,7 +155,7 @@ public class ExplainPlanPreprocessorForTest { Column[] columns = schema.toArray(); Arrays.sort(columns, columnComparator); - Schema sorted = new Schema(); + Schema sorted = SchemaFactory.newV1(); for (Column col : columns) { sorted.addColumn(col); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java index 641e2b9..da11bd8 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java @@ -218,7 +218,7 @@ public class QueryExecutor { explainStr = PlannerUtil.buildExplainString(plan.getRootBlock().getRoot()); } - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("explain", TajoDataTypes.Type.TEXT); SerializedResultSet.Builder serializedResBuilder = SerializedResultSet.newBuilder(); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java b/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java index 4e4251a..8fdd6ce 100644 --- a/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java +++ b/tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java @@ -634,7 +634,7 @@ public class Repartitioner { ExecutionBlock sampleChildBlock = masterPlan.getChild(stage.getId(), 0); SortNode sortNode = PlannerUtil.findTopNode(sampleChildBlock.getPlan(), NodeType.SORT); SortSpec [] sortSpecs = sortNode.getSortKeys(); - Schema sortSchema = new Schema(channel.getShuffleKeys()); + Schema sortSchema = SchemaFactory.newV1(channel.getShuffleKeys()); TupleRange[] ranges; int determinedTaskNum; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core/src/main/java/org/apache/tajo/ws/rs/TajoRestService.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/ws/rs/TajoRestService.java b/tajo-core/src/main/java/org/apache/tajo/ws/rs/TajoRestService.java index 293192c..ba106d2 100644 --- a/tajo-core/src/main/java/org/apache/tajo/ws/rs/TajoRestService.java +++ b/tajo-core/src/main/java/org/apache/tajo/ws/rs/TajoRestService.java @@ -21,28 +21,10 @@ package org.apache.tajo.ws.rs; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.Path; import org.apache.hadoop.service.CompositeService; -import org.apache.tajo.catalog.TableMeta; -import org.apache.tajo.catalog.json.FunctionAdapter; -import org.apache.tajo.catalog.json.TableMetaAdapter; -import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.conf.TajoConf; -import org.apache.tajo.datum.Datum; -import org.apache.tajo.function.Function; -import org.apache.tajo.json.ClassNameSerializer; -import org.apache.tajo.json.DataTypeAdapter; -import org.apache.tajo.json.DatumAdapter; -import org.apache.tajo.json.GsonSerDerAdapter; -import org.apache.tajo.json.PathSerializer; -import org.apache.tajo.json.TimeZoneGsonSerdeAdapter; import org.apache.tajo.master.TajoMaster.MasterContext; -import org.apache.tajo.plan.expr.EvalNode; -import org.apache.tajo.plan.function.AggFunction; -import org.apache.tajo.plan.function.GeneralFunction; -import org.apache.tajo.plan.logical.LogicalNode; -import org.apache.tajo.plan.serder.EvalNodeAdapter; -import org.apache.tajo.plan.serder.LogicalNodeAdapter; +import org.apache.tajo.plan.serder.PlanGsonHelper; import org.apache.tajo.ws.rs.netty.NettyRestServer; import org.apache.tajo.ws.rs.netty.NettyRestServerFactory; import org.apache.tajo.ws.rs.netty.gson.GsonFeature; @@ -50,12 +32,8 @@ import org.glassfish.jersey.filter.LoggingFilter; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.server.ServerProperties; -import java.lang.reflect.Type; import java.net.InetSocketAddress; import java.net.URI; -import java.util.HashMap; -import java.util.Map; -import java.util.TimeZone; public class TajoRestService extends CompositeService { @@ -69,27 +47,10 @@ public class TajoRestService extends CompositeService { this.masterContext = masterContext; } - - private Map<Type, GsonSerDerAdapter<?>> registerTypeAdapterMap() { - Map<Type, GsonSerDerAdapter<?>> adapters = new HashMap<>(); - adapters.put(Path.class, new PathSerializer()); - adapters.put(Class.class, new ClassNameSerializer()); - adapters.put(LogicalNode.class, new LogicalNodeAdapter()); - adapters.put(EvalNode.class, new EvalNodeAdapter()); - adapters.put(TableMeta.class, new TableMetaAdapter()); - adapters.put(Function.class, new FunctionAdapter()); - adapters.put(GeneralFunction.class, new FunctionAdapter()); - adapters.put(AggFunction.class, new FunctionAdapter()); - adapters.put(Datum.class, new DatumAdapter()); - adapters.put(DataType.class, new DataTypeAdapter()); - adapters.put(TimeZone.class, new TimeZoneGsonSerdeAdapter()); - - return adapters; - } @Override protected void serviceInit(Configuration conf) throws Exception { - GsonFeature gsonFeature = new GsonFeature(registerTypeAdapterMap()); + GsonFeature gsonFeature = new GsonFeature(PlanGsonHelper.registerAdapters()); ClientApplication clientApplication = new ClientApplication(masterContext); ResourceConfig resourceConfig = ResourceConfig.forApplication(clientApplication) http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java ---------------------------------------------------------------------- diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java index acb5b69..f4bf2b0 100644 --- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java +++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java @@ -605,7 +605,7 @@ public class TajoDatabaseMetaData implements DatabaseMetaData { , new ArrayList<MetaDataTuple>()); } - private final static Schema importedExportedSchema = new Schema() + private final static Schema importedExportedSchema = SchemaFactory.newV1() .addColumn("PKTABLE_CAT", Type.VARCHAR) // 0 .addColumn("PKTABLE_SCHEM", Type.VARCHAR) // 1 .addColumn("PKTABLE_NAME", Type.VARCHAR) // 2 http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestResultSet.java ---------------------------------------------------------------------- diff --git a/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestResultSet.java b/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestResultSet.java index 4c926bb..0fbb9aa 100644 --- a/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestResultSet.java +++ b/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestResultSet.java @@ -69,7 +69,7 @@ public class TestResultSet { conf = util.getConfiguration(); sm = TablespaceManager.getDefault(); - scoreSchema = new Schema(); + scoreSchema = SchemaFactory.newV1(); scoreSchema.addColumn("deptname", Type.TEXT); scoreSchema.addColumn("score", Type.INT4); scoreMeta = CatalogUtil.newTableMeta("TEXT"); @@ -197,7 +197,7 @@ public class TestResultSet { String query = "select col1, col2, col3 from " + tableName; String [] table = new String[] {tableName}; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.DATE); schema.addColumn("col2", Type.TIME); schema.addColumn("col3", Type.TIMESTAMP); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java index 3d8ad41..f791a3d 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java @@ -1228,7 +1228,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex } private static Schema getNaturalJoinSchema(LogicalNode left, LogicalNode right) { - Schema joinSchema = new Schema(); + Schema joinSchema = SchemaFactory.newV1(); Schema commons = SchemaUtil.getNaturalJoinColumns(left.getOutSchema(), right.getOutSchema()); joinSchema.addColumns(commons); for (Column c : left.getOutSchema().getRootColumns()) { @@ -1677,7 +1677,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex // See PreLogicalPlanVerifier.visitInsert. // It guarantees that the equivalence between the numbers of target and projected columns. ColumnReferenceExpr [] targets = expr.getTargetColumns(); - Schema targetColumns = new Schema(); + Schema targetColumns = SchemaFactory.newV1(); for (ColumnReferenceExpr target : targets) { Column targetColumn = desc.getLogicalSchema().getColumn(target.getCanonicalName().replace(".", "/")); @@ -1697,7 +1697,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex Schema tableSchema = desc.getLogicalSchema(); Schema projectedSchema = insertNode.getChild().getOutSchema(); - Schema targetColumns = new Schema(); + Schema targetColumns = SchemaFactory.newV1(); for (int i = 0; i < projectedSchema.size(); i++) { targetColumns.addColumn(tableSchema.getColumn(i)); } @@ -1956,7 +1956,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex queryOutputSchema.size() < partitionExpressionSchema.size()) { throw makeSyntaxError("Partition columns cannot be more than table columns."); } - Schema tableSchema = new Schema(); + Schema tableSchema = SchemaFactory.newV1(); for (int i = 0; i < queryOutputSchema.size() - partitionExpressionSchema.size(); i++) { tableSchema.addColumn(queryOutputSchema.getColumn(i)); } @@ -1964,7 +1964,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex createTableNode.setTableSchema(tableSchema); } else { // Convert the schema of subquery into the target table's one. - Schema schema = new Schema(subQuery.getOutSchema()); + Schema schema = SchemaFactory.newV1(subQuery.getOutSchema()); schema.setQualifier(createTableNode.getTableName()); createTableNode.setOutSchema(schema); createTableNode.setTableSchema(schema); @@ -2040,7 +2040,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex * @return schema transformed from table definition elements */ private Schema convertColumnsToSchema(ColumnDefinition[] elements) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (ColumnDefinition columnDefinition: elements) { schema.addColumn(convertColumn(columnDefinition)); @@ -2056,7 +2056,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex * @return schema transformed from table definition elements */ private static Schema convertTableElementsSchema(ColumnDefinition[] elements) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (ColumnDefinition columnDefinition: elements) { schema.addColumn(convertColumn(columnDefinition)); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/expr/EvalTreeUtil.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/EvalTreeUtil.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/EvalTreeUtil.java index 3318d35..31cd1c6 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/EvalTreeUtil.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/EvalTreeUtil.java @@ -27,6 +27,7 @@ import org.apache.tajo.annotation.Nullable; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.datum.Datum; import org.apache.tajo.exception.TajoInternalError; @@ -144,7 +145,7 @@ public class EvalTreeUtil { } public static Schema getSchemaByTargets(Schema inputSchema, List<Target> targets) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (Target target : targets) { schema.addColumn( target.hasAlias() ? target.getAlias() : target.getEvalTree().getName(), http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/function/python/PythonScriptEngine.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/python/PythonScriptEngine.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/python/PythonScriptEngine.java index 05a72fe..8bccdc4 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/python/PythonScriptEngine.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/python/PythonScriptEngine.java @@ -290,7 +290,7 @@ public class PythonScriptEngine extends TajoScriptEngine { private final TableMeta pipeMeta = CatalogUtil.newTableMeta("TEXT"); private final Tuple EMPTY_INPUT = new VTuple(0); - private final Schema EMPTY_SCHEMA = new Schema(); + private final Schema EMPTY_SCHEMA = SchemaFactory.newV1(); public PythonScriptEngine(FunctionDesc functionDesc) { if (!functionDesc.getInvocation().hasPython() && !functionDesc.getInvocation().hasPythonAggregation()) { @@ -388,27 +388,27 @@ public class PythonScriptEngine extends TajoScriptEngine { private void setSchema() { if (invocationDesc.isScalarFunction()) { TajoDataTypes.DataType[] paramTypes = functionSignature.getParamTypes(); - inSchema = new Schema(); + inSchema = SchemaFactory.newV1(); for (int i = 0; i < paramTypes.length; i++) { inSchema.addColumn(new Column("in_" + i, paramTypes[i])); } - outSchema = new Schema(new Column[]{new Column("out", functionSignature.getReturnType())}); + outSchema = SchemaFactory.newV1(new Column[]{new Column("out", functionSignature.getReturnType())}); } else { // UDAF if (firstPhase) { // first phase TajoDataTypes.DataType[] paramTypes = functionSignature.getParamTypes(); - inSchema = new Schema(); + inSchema = SchemaFactory.newV1(); for (int i = 0; i < paramTypes.length; i++) { inSchema.addColumn(new Column("in_" + i, paramTypes[i])); } - outSchema = new Schema(new Column[]{new Column("json", TajoDataTypes.Type.TEXT)}); + outSchema = SchemaFactory.newV1(new Column[]{new Column("json", TajoDataTypes.Type.TEXT)}); } else if (lastPhase) { - inSchema = new Schema(new Column[]{new Column("json", TajoDataTypes.Type.TEXT)}); - outSchema = new Schema(new Column[]{new Column("out", functionSignature.getReturnType())}); + inSchema = SchemaFactory.newV1(new Column[]{new Column("json", TajoDataTypes.Type.TEXT)}); + outSchema = SchemaFactory.newV1(new Column[]{new Column("out", functionSignature.getReturnType())}); } else { // intermediate phase - inSchema = outSchema = new Schema(new Column[]{new Column("json", TajoDataTypes.Type.TEXT)}); + inSchema = outSchema = SchemaFactory.newV1(new Column[]{new Column("json", TajoDataTypes.Type.TEXT)}); } } projectionCols = new int[outSchema.size()]; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java index c863034..3fed563 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java @@ -21,6 +21,7 @@ package org.apache.tajo.plan.logical; import com.google.common.base.Objects; import com.google.gson.annotations.Expose; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.plan.PlanString; import org.apache.tajo.util.TUtil; @@ -41,7 +42,7 @@ public class CreateTableNode extends StoreTableNode implements Cloneable { public Schema getLogicalSchema() { if (hasPartition()) { - Schema logicalSchema = new Schema(tableSchema); + Schema logicalSchema = SchemaFactory.newV1(tableSchema); logicalSchema.addColumns(getPartitionMethod().getExpressionSchema()); return logicalSchema; } else { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java index eae18bb..a993d64 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java @@ -21,6 +21,7 @@ package org.apache.tajo.plan.logical; import com.google.gson.annotations.Expose; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableDesc; import org.apache.tajo.plan.PlanString; import org.apache.tajo.util.TUtil; @@ -123,9 +124,9 @@ public class InsertNode extends StoreTableNode implements Cloneable { public Object clone() throws CloneNotSupportedException { InsertNode insertNode = (InsertNode) super.clone(); insertNode.overwrite = overwrite; - insertNode.tableSchema = new Schema(tableSchema); - insertNode.targetSchema = targetSchema != null ? new Schema(targetSchema) : null; - insertNode.projectedSchema = projectedSchema != null ? new Schema(projectedSchema) : null; + insertNode.tableSchema = SchemaFactory.newV1(tableSchema); + insertNode.targetSchema = targetSchema != null ? SchemaFactory.newV1(targetSchema) : null; + insertNode.projectedSchema = projectedSchema != null ? SchemaFactory.newV1(projectedSchema) : null; insertNode.uri = uri != null ? uri : null; return insertNode; } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java index a3b8001..5427ba6 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java @@ -22,10 +22,7 @@ import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.gson.annotations.Expose; import org.apache.commons.lang.StringUtils; -import org.apache.tajo.catalog.CatalogUtil; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.SchemaUtil; -import org.apache.tajo.catalog.TableDesc; +import org.apache.tajo.catalog.*; import org.apache.tajo.plan.PlanString; import org.apache.tajo.plan.Target; import org.apache.tajo.plan.expr.EvalNode; @@ -84,7 +81,7 @@ public class ScanNode extends RelationNode implements Projectable, SelectableNod String qualifiedAlias = CatalogUtil.buildFQName(databaseName, alias); this.setInSchema(tableDesc.getSchema()); this.getInSchema().setQualifier(qualifiedAlias); - this.setOutSchema(new Schema(getInSchema())); + this.setOutSchema(SchemaFactory.newV1(getInSchema())); logicalSchema = SchemaUtil.getQualifiedLogicalSchema(tableDesc, qualifiedAlias); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/SelfDescSchemaBuildPhase.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/SelfDescSchemaBuildPhase.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/SelfDescSchemaBuildPhase.java index 59adfc5..c5ca1ef 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/SelfDescSchemaBuildPhase.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/SelfDescSchemaBuildPhase.java @@ -401,7 +401,7 @@ public class SelfDescSchemaBuildPhase extends LogicalPlanPreprocessPhase { private Schema buildSchemaFromColumnSet(Set<Column> columns) throws TajoException { SchemaGraph schemaGraph = new SchemaGraph(); Set<ColumnVertex> rootVertexes = new HashSet<>(); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); Set<Column> simpleColumns = new HashSet<>(); List<Column> columnList = new ArrayList<>(columns); @@ -523,7 +523,7 @@ public class SelfDescSchemaBuildPhase extends LogicalPlanPreprocessPhase { if (graph.isLeaf(schemaVertex)) { schemaVertex.column = new Column(schemaVertex.name, schemaVertex.type); } else { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (ColumnVertex eachChild : graph.getChilds(schemaVertex)) { schema.addColumn(eachChild.column); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/IndexScanInfo.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/IndexScanInfo.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/IndexScanInfo.java index 9ac8ccf..26c27b3 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/IndexScanInfo.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/IndexScanInfo.java @@ -21,6 +21,7 @@ package org.apache.tajo.plan.rewrite.rules; import com.google.gson.annotations.Expose; import org.apache.tajo.catalog.IndexDesc; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SortSpec; import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.common.ProtoObject; @@ -92,7 +93,7 @@ public class IndexScanInfo extends AccessPathInfo { public IndexScanInfo(TableStats tableStats, IndexDesc indexDesc, SimplePredicate[] predicates) { super(ScanTypeControl.INDEX_SCAN, tableStats); this.indexPath = indexDesc.getIndexPath(); - keySchema = new Schema(); + keySchema = SchemaFactory.newV1(); this.predicates = predicates; for (SimplePredicate predicate : predicates) { keySchema.addColumn(predicate.getKeySortSpec().getSortKey()); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java index cf54f7b..00580ae 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java @@ -334,7 +334,7 @@ public class PartitionedTableRewriter implements LogicalPlanRewriteRule { TableDesc table = scanNode.getTableDesc(); PartitionMethodDesc partitionDesc = scanNode.getTableDesc().getPartitionMethod(); - Schema paritionValuesSchema = new Schema(); + Schema paritionValuesSchema = SchemaFactory.newV1(); for (Column column : partitionDesc.getExpressionSchema().getRootColumns()) { paritionValuesSchema.addColumn(column); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java index e8c0d4f..4b47e4a 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java @@ -24,10 +24,7 @@ import org.apache.hadoop.fs.Path; import org.apache.tajo.OverridableConf; import org.apache.tajo.algebra.JoinType; import org.apache.tajo.annotation.Nullable; -import org.apache.tajo.catalog.Column; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.SortSpec; -import org.apache.tajo.catalog.TableDesc; +import org.apache.tajo.catalog.*; import org.apache.tajo.catalog.partition.PartitionMethodDesc; import org.apache.tajo.catalog.proto.CatalogProtos; import org.apache.tajo.exception.NotImplementedException; @@ -449,7 +446,7 @@ public class LogicalNodeDeserializer { predicates[i] = new SimplePredicate(indexScanSpec.getPredicates(i)); } - indexScan.set(new Schema(indexScanSpec.getKeySchema()), predicates, + indexScan.set(SchemaFactory.newV1(indexScanSpec.getKeySchema()), predicates, TUtil.stringToURI(indexScanSpec.getIndexPath())); return indexScan; @@ -683,7 +680,7 @@ public class LogicalNodeDeserializer { for (int i = 0; i < keySortSpecs.length; i++) { keySortSpecs[i] = new SortSpec(createIndexProto.getKeySortSpecs(i)); } - createIndex.setKeySortSpecs(new Schema(createIndexProto.getTargetRelationSchema()), + createIndex.setKeySortSpecs(SchemaFactory.newV1(createIndexProto.getTargetRelationSchema()), keySortSpecs); createIndex.setUnique(createIndexProto.getIsUnique()); createIndex.setClustered(createIndexProto.getIsClustered()); @@ -727,7 +724,7 @@ public class LogicalNodeDeserializer { } public static Schema convertSchema(CatalogProtos.SchemaProto proto) { - return new Schema(proto); + return SchemaFactory.newV1(proto); } public static Column[] convertColumns(List<CatalogProtos.ColumnProto> columnProtos) { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/serder/PlanGsonHelper.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/PlanGsonHelper.java b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/PlanGsonHelper.java index 875f1d1..77bf103 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/PlanGsonHelper.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/PlanGsonHelper.java @@ -21,8 +21,10 @@ package org.apache.tajo.plan.serder; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.apache.hadoop.fs.Path; +import org.apache.tajo.catalog.Schema; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.json.FunctionAdapter; +import org.apache.tajo.catalog.json.SchemaAdapter; import org.apache.tajo.catalog.json.TableMetaAdapter; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.datum.Datum; @@ -45,8 +47,8 @@ public class PlanGsonHelper { private PlanGsonHelper() { } - private static Map<Type, GsonSerDerAdapter> registerAdapters() { - Map<Type, GsonSerDerAdapter> adapters = new HashMap<>(); + public static Map<Type, GsonSerDerAdapter<?>> registerAdapters() { + Map<Type, GsonSerDerAdapter<?>> adapters = new HashMap<>(); adapters.put(Path.class, new PathSerializer()); adapters.put(Class.class, new ClassNameSerializer()); adapters.put(LogicalNode.class, new LogicalNodeAdapter()); @@ -58,6 +60,7 @@ public class PlanGsonHelper { adapters.put(Datum.class, new DatumAdapter()); adapters.put(DataType.class, new DataTypeAdapter()); adapters.put(TimeZone.class, new TimeZoneGsonSerdeAdapter()); + adapters.put(Schema.class, new SchemaAdapter()); return adapters; } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java index 6897e17..eccd37a 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java @@ -565,7 +565,7 @@ public class PlannerUtil { } public static Schema sortSpecsToSchema(SortSpec[] sortSpecs) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (SortSpec spec : sortSpecs) { schema.addColumn(spec.getSortKey()); } @@ -656,7 +656,7 @@ public class PlannerUtil { } public static Schema targetToSchema(List<Target> targets) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (Target t : targets) { DataType type = t.getEvalTree().getValueType(); String name; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-plan/src/test/java/org/apache/tajo/plan/TestLogicalNode.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/test/java/org/apache/tajo/plan/TestLogicalNode.java b/tajo-plan/src/test/java/org/apache/tajo/plan/TestLogicalNode.java index 56edccc..f3acb00 100644 --- a/tajo-plan/src/test/java/org/apache/tajo/plan/TestLogicalNode.java +++ b/tajo-plan/src/test/java/org/apache/tajo/plan/TestLogicalNode.java @@ -22,6 +22,7 @@ import org.apache.hadoop.fs.Path; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.plan.logical.GroupbyNode; import org.apache.tajo.plan.logical.JoinNode; @@ -35,7 +36,7 @@ public class TestLogicalNode { @Test public void testEquals() { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("name", Type.TEXT); schema.addColumn("age", Type.INT2); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java index 921563a..2d6d398 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/BaseTupleComparator.java @@ -20,6 +20,7 @@ package org.apache.tajo.storage; import com.google.common.base.Preconditions; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SortSpec; import org.apache.tajo.common.ProtoObject; import org.apache.tajo.datum.Datum; @@ -68,7 +69,7 @@ public class BaseTupleComparator extends TupleComparator implements ProtoObject< } public BaseTupleComparator(TupleComparatorProto proto) { - this.schema = new Schema(proto.getSchema()); + this.schema = SchemaFactory.newV1(proto.getSchema()); this.sortSpecs = new SortSpec[proto.getSortSpecsCount()]; for (int i = 0; i < proto.getSortSpecsCount(); i++) { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java index 04d7fed..ec20aca 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java @@ -21,6 +21,7 @@ package org.apache.tajo.storage; import org.apache.hadoop.conf.Configuration; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.statistics.ColumnStats; import org.apache.tajo.catalog.statistics.TableStats; @@ -165,7 +166,7 @@ public class MergeScanner implements Scanner { @Override public void setTarget(Column[] targets) { - this.target = new Schema(targets); + this.target = SchemaFactory.newV1(targets); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TupleRange.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TupleRange.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TupleRange.java index c42cdd6..560e642 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TupleRange.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TupleRange.java @@ -20,6 +20,7 @@ package org.apache.tajo.storage; import com.google.common.base.Objects; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SortSpec; /** @@ -38,7 +39,7 @@ public class TupleRange implements Comparable<TupleRange>, Cloneable { } public static Schema sortSpecsToSchema(SortSpec[] sortSpecs) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); for (SortSpec spec : sortSpecs) { schema.addColumn(spec.getSortKey()); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestLazyTuple.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestLazyTuple.java b/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestLazyTuple.java index 96f90e7..df5d3b0 100644 --- a/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestLazyTuple.java +++ b/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestLazyTuple.java @@ -20,6 +20,7 @@ package org.apache.tajo.storage; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.DatumFactory; import org.apache.tajo.datum.NullDatum; @@ -40,7 +41,7 @@ public class TestLazyTuple { public void setUp() { nullbytes = "\\N".getBytes(); - schema = new Schema(); + schema = SchemaFactory.newV1(); schema.addColumn("col1", TajoDataTypes.Type.BOOLEAN); schema.addColumn("col2", TajoDataTypes.Type.BIT); schema.addColumn("col3", TajoDataTypes.Type.CHAR, 7); @@ -197,7 +198,7 @@ public class TestLazyTuple { @Test public void testInvalidNumber() { byte[][] bytes = BytesUtils.splitPreserveAllTokens(" 1| |2 ||".getBytes(), '|', 5); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", TajoDataTypes.Type.INT2); schema.addColumn("col2", TajoDataTypes.Type.INT4); schema.addColumn("col3", TajoDataTypes.Type.INT8); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTupleComparator.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTupleComparator.java b/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTupleComparator.java index 52622ee..e5d8464 100644 --- a/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTupleComparator.java +++ b/tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTupleComparator.java @@ -19,6 +19,7 @@ package org.apache.tajo.storage; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.SortSpec; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.datum.*; @@ -44,7 +45,7 @@ public class TestTupleComparator { @Test public final void testCompare() { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.INT4); schema.addColumn("col2", Type.INT4); schema.addColumn("col3", Type.INT4); @@ -77,7 +78,7 @@ public class TestTupleComparator { @Test public void testNullFirst() throws Exception { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("name", Type.TEXT); @@ -117,7 +118,7 @@ public class TestTupleComparator { @Test public void testNullLast() throws Exception { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("name", Type.TEXT); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java b/tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java index bfdc8ca..6713519 100644 --- a/tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java +++ b/tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java @@ -19,6 +19,7 @@ package org.apache.tajo.storage.hbase; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.util.KeyValueSet; @@ -35,7 +36,7 @@ public class TestColumnMapping { keyValueSet.set(HBaseStorageConstants.META_TABLE_KEY, "test"); keyValueSet.set(HBaseStorageConstants.META_COLUMNS_KEY, ":key,col2:key:,col2:value:#b,col3:"); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("c1", Type.TEXT); schema.addColumn("c2", Type.TEXT); schema.addColumn("c3", Type.TEXT); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java index e0051f4..01a6e7f 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/index/bst/BSTIndex.java @@ -26,6 +26,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org.apache.hadoop.fs.FileSystem; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.proto.CatalogProtos.SchemaProto; import org.apache.tajo.storage.*; import org.apache.tajo.storage.RowStoreUtil.RowStoreDecoder; @@ -543,7 +544,7 @@ public class BSTIndex implements IndexMethod { SchemaProto.Builder builder = SchemaProto.newBuilder(); builder.mergeFrom(schemaBytes); SchemaProto proto = builder.build(); - this.keySchema = new Schema(proto); + this.keySchema = SchemaFactory.newV1(proto); this.rowStoreDecoder = RowStoreUtil.createDecoder(keySchema); // comparator http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/ParquetScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/ParquetScanner.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/ParquetScanner.java index 0c4749c..4bdb4f4 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/ParquetScanner.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/ParquetScanner.java @@ -20,6 +20,7 @@ package org.apache.tajo.storage.parquet; import org.apache.hadoop.conf.Configuration; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.exception.NotImplementedException; import org.apache.tajo.exception.TajoRuntimeException; @@ -63,7 +64,7 @@ public class ParquetScanner extends FileScanner { if (targets == null) { targets = schema.toArray(); } - reader = new TajoParquetReader(conf, fragment.getPath(), schema, new Schema(targets)); + reader = new TajoParquetReader(conf, fragment.getPath(), schema, SchemaFactory.newV1(targets)); totalRowCount = reader.getTotalRowCount(); currentRowCount = 0; closed = false; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/TajoSchemaConverter.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/TajoSchemaConverter.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/TajoSchemaConverter.java index dfe6af8..b2f3f34 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/TajoSchemaConverter.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/TajoSchemaConverter.java @@ -25,6 +25,7 @@ import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName; import org.apache.parquet.schema.Type; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.common.TajoDataTypes; import java.util.ArrayList; @@ -64,7 +65,7 @@ public class TajoSchemaConverter { } Column[] columnsArray = new Column[columns.size()]; columnsArray = columns.toArray(columnsArray); - return new Schema(columnsArray); + return SchemaFactory.newV1(columnsArray); } private Column convertField(final Type fieldType) { http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/thirdparty/orc/OrcRecordReader.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/thirdparty/orc/OrcRecordReader.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/thirdparty/orc/OrcRecordReader.java index 7194bf4..df9a7c7 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/thirdparty/orc/OrcRecordReader.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/thirdparty/orc/OrcRecordReader.java @@ -31,6 +31,7 @@ import org.apache.orc.impl.*; import org.apache.orc.impl.StreamName; import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.storage.Tuple; import org.apache.tajo.storage.VTuple; @@ -91,7 +92,7 @@ public class OrcRecordReader implements Closeable { this.bufferSize = bufferSize; this.included = new boolean[schema.size() + 1]; included[0] = target.length > 0; // always include root column except when target schema size is 0 - Schema targetSchema = new Schema(target); + Schema targetSchema = SchemaFactory.newV1(target); for (int i = 1; i < included.length; i++) { included[i] = targetSchema.contains(schema.getColumn(i - 1)); } http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java index 608d066..d18961f 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java @@ -31,6 +31,7 @@ import org.apache.orc.OrcConf; import org.apache.tajo.BuiltinStorages; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.common.TajoDataTypes.Type; @@ -112,7 +113,7 @@ public class TestCompressionStorages { } private void storageCompressionTest(String dataFormat, Class<? extends CompressionCodec> codec) throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.FLOAT4); schema.addColumn("name", Type.TEXT); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java index 6ff291c..523a0d0 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java @@ -25,6 +25,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.conf.TajoConf; @@ -41,7 +42,7 @@ import static org.junit.Assert.*; public class TestDelimitedTextFile { private static final Log LOG = LogFactory.getLog(TestDelimitedTextFile.class); - private static Schema schema = new Schema(); + private static Schema schema = SchemaFactory.newV1(); private static Tuple baseTuple; http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java index e9e44b5..59ff6f6 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java @@ -24,6 +24,7 @@ import org.apache.hadoop.fs.LocalFileSystem; import org.apache.hadoop.fs.Path; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.conf.TajoConf; @@ -97,7 +98,7 @@ public class TestFileSystems { @Test public void testBlockSplit() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT4); schema.addColumn("name", Type.TEXT); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java index 58025c3..b8f9893 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java @@ -27,6 +27,7 @@ import org.apache.hadoop.hdfs.*; import org.apache.tajo.BuiltinStorages; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.conf.TajoConf; @@ -81,7 +82,7 @@ public class TestFileTablespace { @Test public final void testGetScannerAndAppender() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age",Type.INT4); schema.addColumn("name",Type.TEXT); @@ -144,7 +145,7 @@ public class TestFileTablespace { TablespaceManager.addTableSpaceForTest(space); assertEquals(fs.getUri(), space.getUri()); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age",Type.INT4); schema.addColumn("name",Type.TEXT); @@ -198,7 +199,7 @@ public class TestFileTablespace { TablespaceManager.addTableSpaceForTest(space); assertEquals(fs.getUri(), space.getUri()); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age",Type.INT4); schema.addColumn("name",Type.TEXT); @@ -241,7 +242,7 @@ public class TestFileTablespace { TablespaceManager.addTableSpaceForTest(sm); assertEquals(fs.getUri(), sm.getUri()); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT4); schema.addColumn("name", Type.TEXT); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java index a478538..e47741c 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java @@ -27,6 +27,7 @@ import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.io.compress.DeflateCodec; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes.Type; import org.apache.tajo.conf.TajoConf; @@ -58,7 +59,7 @@ public class TestLineReader { Path testDir = CommonTestingUtil.getTestDir(TEST_PATH); FileSystem fs = testDir.getFileSystem(conf); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("comment", Type.TEXT); @@ -110,7 +111,7 @@ public class TestLineReader { Path testDir = CommonTestingUtil.getTestDir(TEST_PATH); FileSystem fs = testDir.getFileSystem(conf); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("comment", Type.TEXT); @@ -169,7 +170,7 @@ public class TestLineReader { Path testDir = CommonTestingUtil.getTestDir(TEST_PATH); FileSystem fs = testDir.getFileSystem(conf); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("comment", Type.TEXT); @@ -275,7 +276,7 @@ public class TestLineReader { Path testDir = CommonTestingUtil.getTestDir(TEST_PATH); FileSystem fs = testDir.getFileSystem(conf); - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("comment", Type.TEXT); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java index d8d3359..a04867e 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java @@ -23,6 +23,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.common.TajoDataTypes.Type; @@ -98,7 +99,7 @@ public class TestMergeScanner { @Test public void testMultipleFiles() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("file", Type.TEXT); schema.addColumn("name", Type.TEXT); @@ -160,7 +161,7 @@ public class TestMergeScanner { fragment[0] = new FileFragment("tablet1", table1Path, 0, status1.getLen()); fragment[1] = new FileFragment("tablet1", table2Path, 0, status2.getLen()); - Schema targetSchema = new Schema(); + Schema targetSchema = SchemaFactory.newV1(); targetSchema.addColumn(schema.getColumn(0)); targetSchema.addColumn(schema.getColumn(2)); http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java index a9d61d5..64316d1 100644 --- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java +++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java @@ -31,6 +31,7 @@ import org.apache.tajo.QueryId; import org.apache.tajo.TajoIdProtos; import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.catalog.Schema; +import org.apache.tajo.catalog.SchemaFactory; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.common.TajoDataTypes.Type; @@ -185,7 +186,7 @@ public class TestStorages { @Test public void testSplitable() throws IOException { if (splitable) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); @@ -239,7 +240,7 @@ public class TestStorages { @Test public void testZeroRows() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("score", Type.FLOAT4); @@ -283,7 +284,7 @@ public class TestStorages { @Test public void testRCFileSplitable() throws IOException { if (dataFormat.equalsIgnoreCase(BuiltinStorages.RCFILE)) { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); @@ -337,7 +338,7 @@ public class TestStorages { @Test public void testProjection() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("score", Type.FLOAT4); @@ -368,7 +369,7 @@ public class TestStorages { FileStatus status = fs.getFileStatus(tablePath); FileFragment fragment = new FileFragment("testReadAndWrite", tablePath, 0, status.getLen()); - Schema target = new Schema(); + Schema target = SchemaFactory.newV1(); target.addColumn("age", Type.INT8); target.addColumn("score", Type.FLOAT4); Scanner scanner = sm.getScanner(meta, schema, fragment, target); @@ -400,7 +401,7 @@ public class TestStorages { @Test public void testVariousTypes() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.CHAR, 7); schema.addColumn("col3", Type.INT2); @@ -469,7 +470,7 @@ public class TestStorages { @Test public void testNullHandlingTypes() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.CHAR, 7); schema.addColumn("col3", Type.INT2); @@ -564,7 +565,7 @@ public class TestStorages { public void testNullHandlingTypesWithProjection() throws IOException { if (internalType) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.CHAR, 7); schema.addColumn("col3", Type.INT2); @@ -635,7 +636,7 @@ public class TestStorages { // Making projection schema with different column positions - Schema target = new Schema(); + Schema target = SchemaFactory.newV1(); Random random = new Random(); for (int i = 1; i < schema.size(); i++) { int num = random.nextInt(schema.size() - 1) + 1; @@ -670,7 +671,7 @@ public class TestStorages { public void testRCFileTextSerializeDeserialize() throws IOException { if(!dataFormat.equalsIgnoreCase(BuiltinStorages.RCFILE)) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.BIT); schema.addColumn("col3", Type.CHAR, 7); @@ -737,7 +738,7 @@ public class TestStorages { public void testRCFileBinarySerializeDeserialize() throws IOException { if(!dataFormat.equalsIgnoreCase(BuiltinStorages.RCFILE)) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.BIT); schema.addColumn("col3", Type.CHAR, 7); @@ -804,7 +805,7 @@ public class TestStorages { public void testSequenceFileTextSerializeDeserialize() throws IOException { if(!dataFormat.equalsIgnoreCase(BuiltinStorages.SEQUENCE_FILE)) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.BIT); schema.addColumn("col3", Type.CHAR, 7); @@ -874,7 +875,7 @@ public class TestStorages { public void testSequenceFileBinarySerializeDeserialize() throws IOException { if(!dataFormat.equalsIgnoreCase(BuiltinStorages.SEQUENCE_FILE)) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.BOOLEAN); schema.addColumn("col2", Type.BIT); schema.addColumn("col3", Type.CHAR, 7); @@ -945,7 +946,7 @@ public class TestStorages { if (dateTypeSupport() || timeTypeSupport()) { int index = 2; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.TIMESTAMP); if (dateTypeSupport()) { schema.addColumn("col" + index++, Type.DATE); @@ -996,7 +997,7 @@ public class TestStorages { return; } - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("comment", Type.TEXT); @@ -1071,7 +1072,7 @@ public class TestStorages { @Test public void testMaxValue() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.FLOAT4); schema.addColumn("col2", Type.FLOAT8); schema.addColumn("col3", Type.INT2); @@ -1138,7 +1139,7 @@ public class TestStorages { return; } - Schema dataSchema = new Schema(); + Schema dataSchema = SchemaFactory.newV1(); dataSchema.addColumn("col1", Type.FLOAT4); dataSchema.addColumn("col2", Type.FLOAT8); dataSchema.addColumn("col3", Type.INT2); @@ -1166,7 +1167,7 @@ public class TestStorages { assertTrue(fs.exists(tablePath)); FileStatus status = fs.getFileStatus(tablePath); - Schema inSchema = new Schema(); + Schema inSchema = SchemaFactory.newV1(); inSchema.addColumn("col1", Type.FLOAT4); inSchema.addColumn("col2", Type.FLOAT8); inSchema.addColumn("col3", Type.INT2); @@ -1176,7 +1177,7 @@ public class TestStorages { FileFragment fragment = new FileFragment("table", tablePath, 0, status.getLen()); Scanner scanner = TablespaceManager.getLocalFs().getScanner(meta, inSchema, fragment, null); - Schema target = new Schema(); + Schema target = SchemaFactory.newV1(); target.addColumn("col2", Type.FLOAT8); target.addColumn("col5", Type.INT8); @@ -1204,7 +1205,7 @@ public class TestStorages { return; } - Schema dataSchema = new Schema(); + Schema dataSchema = SchemaFactory.newV1(); dataSchema.addColumn("col1", Type.CHAR); KeyValueSet options = new KeyValueSet(); @@ -1247,7 +1248,7 @@ public class TestStorages { return; } - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.TEXT); KeyValueSet options = new KeyValueSet(); @@ -1288,7 +1289,7 @@ public class TestStorages { if (internalType) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("score", Type.FLOAT4); @@ -1323,7 +1324,7 @@ public class TestStorages { @Test public void testProgress() throws IOException { - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("col1", Type.FLOAT4); schema.addColumn("col2", Type.FLOAT8); schema.addColumn("col3", Type.INT2); @@ -1371,7 +1372,7 @@ public class TestStorages { public void testEmptySchema() throws IOException { if (internalType) return; - Schema schema = new Schema(); + Schema schema = SchemaFactory.newV1(); schema.addColumn("id", Type.INT4); schema.addColumn("age", Type.INT8); schema.addColumn("score", Type.FLOAT4); @@ -1409,7 +1410,7 @@ public class TestStorages { } //e,g select count(*) from table - Schema target = new Schema(); + Schema target = SchemaFactory.newV1(); assertEquals(0, target.size()); FileFragment fragment = new FileFragment("table", tablePath, 0, status.getLen());
