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 2016/03/28 06:07:24 UTC
[1/5] tajo git commit: TAJO-2099: Implement an Adapter for legacy
Schema.
Repository: tajo
Updated Branches:
refs/heads/master 682635852 -> 8dad551ec
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
index a9d8ce2..18d5012 100644
--- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
@@ -60,7 +60,7 @@ public class TestBSTIndex {
this.dataFormat = type;
conf = new TajoConf();
conf.setVar(TajoConf.ConfVars.ROOT_DIR, TEST_PATH);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn(new Column("int", Type.INT4));
schema.addColumn(new Column("long", Type.INT8));
schema.addColumn(new Column("double", Type.FLOAT8));
@@ -111,7 +111,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
@@ -187,7 +187,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
@@ -280,7 +280,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
@@ -353,7 +353,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("int", Type.INT4));
keySchema.addColumn(new Column("long", Type.INT8));
@@ -446,7 +446,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("int", Type.INT4));
keySchema.addColumn(new Column("long", Type.INT8));
@@ -529,7 +529,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
@@ -614,7 +614,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("int", Type.INT4));
keySchema.addColumn(new Column("long", Type.INT8));
@@ -721,7 +721,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("int", Type.INT4));
keySchema.addColumn(new Column("long", Type.INT8));
@@ -803,7 +803,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), false, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), false, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
@@ -896,7 +896,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("int"), false, false);
sortKeys[1] = new SortSpec(schema.getColumn("long"), false, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("int", Type.INT4));
keySchema.addColumn(new Column("long", Type.INT8));
@@ -996,7 +996,7 @@ public class TestBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
index b2ca5b8..1053853 100644
--- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
@@ -56,7 +56,7 @@ public class TestSingleCSVFileBSTIndex {
public TestSingleCSVFileBSTIndex() {
conf = new TajoConf();
conf.setVar(ConfVars.ROOT_DIR, TEST_PATH);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn(new Column("int", Type.INT4));
schema.addColumn(new Column("long", Type.INT8));
schema.addColumn(new Column("double", Type.FLOAT8));
@@ -99,7 +99,7 @@ public class TestSingleCSVFileBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("long", Type.INT8));
keySchema.addColumn(new Column("double", Type.FLOAT8));
@@ -190,7 +190,7 @@ public class TestSingleCSVFileBSTIndex {
sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
- Schema keySchema = new Schema();
+ Schema keySchema = SchemaFactory.newV1();
keySchema.addColumn(new Column("int", Type.INT4));
keySchema.addColumn(new Column("long", Type.INT8));
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
index 75e59da..c2ce9e7 100644
--- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.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.common.TajoDataTypes;
import org.apache.tajo.conf.TajoConf;
@@ -39,7 +40,7 @@ import java.net.URL;
import static org.junit.Assert.*;
public class TestJsonSerDe {
- private static Schema schema = new Schema();
+ private static Schema schema = SchemaFactory.newV1();
static {
schema.addColumn("col1", TajoDataTypes.Type.BOOLEAN);
@@ -104,7 +105,7 @@ public class TestJsonSerDe {
FileStatus status = fs.getFileStatus(tablePath);
FileFragment fragment = new FileFragment("table", tablePath, 0, status.getLen());
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.TEXT);
schema.addColumn("col2", TajoDataTypes.Type.TEXT);
schema.addColumn("col3", TajoDataTypes.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/parquet/TestReadWrite.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestReadWrite.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestReadWrite.java
index ea223e7..b39bfce 100644
--- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestReadWrite.java
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestReadWrite.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.fs.LocalFileSystem;
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.common.TajoDataTypes.Type;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.datum.DatumFactory;
@@ -67,7 +68,7 @@ public class TestReadWrite {
columns.add(new Column("mynull", Type.NULL_TYPE));
Column[] columnsArray = new Column[columns.size()];
columnsArray = columns.toArray(columnsArray);
- return new Schema(columnsArray);
+ return SchemaFactory.newV1(columnsArray);
}
@Test
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestSchemaConverter.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestSchemaConverter.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestSchemaConverter.java
index ba3f72e..87b5c34 100644
--- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestSchemaConverter.java
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/parquet/TestSchemaConverter.java
@@ -22,6 +22,7 @@ import org.apache.parquet.schema.MessageType;
import org.apache.parquet.schema.MessageTypeParser;
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.junit.Test;
@@ -80,7 +81,7 @@ public class TestSchemaConverter {
columns.add(new Column("myprotobuf", Type.PROTOBUF));
Column[] columnsArray = new Column[columns.size()];
columnsArray = columns.toArray(columnsArray);
- return new Schema(columnsArray);
+ return SchemaFactory.newV1(columnsArray);
}
private Schema createAllTypesConvertedSchema() {
@@ -95,7 +96,7 @@ public class TestSchemaConverter {
columns.add(new Column("myfixed", Type.BLOB));
Column[] columnsArray = new Column[columns.size()];
columnsArray = columns.toArray(columnsArray);
- return new Schema(columnsArray);
+ return SchemaFactory.newV1(columnsArray);
}
private void testTajoToParquetConversion(
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/raw/TestDirectRawFile.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/raw/TestDirectRawFile.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/raw/TestDirectRawFile.java
index fb69fa4..1a5a41e 100644
--- a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/raw/TestDirectRawFile.java
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/raw/TestDirectRawFile.java
@@ -26,10 +26,7 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.tajo.BuiltinStorages;
-import org.apache.tajo.catalog.CatalogUtil;
-import org.apache.tajo.catalog.Schema;
-import org.apache.tajo.catalog.SchemaUtil;
-import org.apache.tajo.catalog.TableMeta;
+import org.apache.tajo.catalog.*;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.datum.DatumFactory;
@@ -130,7 +127,7 @@ public class TestDirectRawFile {
}
static {
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.BOOLEAN);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcMetadataProviderBase.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcMetadataProviderBase.java b/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcMetadataProviderBase.java
index eff1b9c..f53c3ed 100644
--- a/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcMetadataProviderBase.java
+++ b/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcMetadataProviderBase.java
@@ -208,7 +208,7 @@ public abstract class JdbcMetadataProviderBase implements MetadataProvider {
});
// transform the pair list into collection for columns
- final Schema schema = new Schema(Collections2.transform(columns, new Function<Pair<Integer,Column>, Column>() {
+ final Schema schema = SchemaFactory.newV1(Collections2.transform(columns, new Function<Pair<Integer,Column>, Column>() {
@Override
public Column apply(@Nullable Pair<Integer, Column> columnPair) {
return columnPair.getSecond();
[3/5] tajo git commit: TAJO-2099: Implement an Adapter for legacy
Schema.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestJoinOrderAlgorithm.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestJoinOrderAlgorithm.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestJoinOrderAlgorithm.java
index 4ae3e5a..ce5a6ab 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestJoinOrderAlgorithm.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestJoinOrderAlgorithm.java
@@ -67,16 +67,16 @@ public class TestJoinOrderAlgorithm {
catalog.createFunction(funcDesc);
}
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("name", Type.TEXT);
schema.addColumn("empid", Type.INT4);
schema.addColumn("deptname", Type.TEXT);
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("deptname", Type.TEXT);
schema2.addColumn("manager", Type.TEXT);
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("deptname", Type.TEXT);
schema3.addColumn("score", Type.INT4);
schema3.addColumn("phone", Type.INT4);
@@ -101,7 +101,7 @@ public class TestJoinOrderAlgorithm {
///////////////////////////////////////////////////////////////////////////
// creating table for overflow in JoinOrderOptimizer.
- Schema schema4 = new Schema();
+ Schema schema4 = SchemaFactory.newV1();
schema4.addColumn("deptname", Type.TEXT);
schema4.addColumn("manager", Type.TEXT);
// Set store type as FAKEFILE to prevent auto update of physical information in LogicalPlanner.updatePhysicalInfo()
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
index 1b911a1..56ef78b 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
@@ -65,16 +65,16 @@ public class TestLogicalOptimizer {
catalog.createFunction(funcDesc);
}
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("name", Type.TEXT);
schema.addColumn("empid", Type.INT4);
schema.addColumn("deptname", Type.TEXT);
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("deptname", Type.TEXT);
schema2.addColumn("manager", Type.TEXT);
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("deptname", Type.TEXT);
schema3.addColumn("score", Type.INT4);
schema3.addColumn("phone", Type.INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
index 98874ba..d09ef77 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
@@ -86,16 +86,16 @@ public class TestLogicalPlanner {
catalog.createFunction(funcDesc);
}
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("name", Type.TEXT);
schema.addColumn("empid", Type.INT4);
schema.addColumn("deptname", Type.TEXT);
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("deptname", Type.TEXT);
schema2.addColumn("manager", Type.TEXT);
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("deptname", Type.TEXT);
schema3.addColumn("score", Type.INT4);
@@ -222,7 +222,7 @@ public class TestLogicalPlanner {
testJsonSerDerObject(root);
testCloneLogicalNode(root);
- Schema expectedSchema = new Schema();
+ Schema expectedSchema = SchemaFactory.newV1();
expectedSchema.addColumn("name", Type.TEXT);
expectedSchema.addColumn("empid", Type.INT4);
expectedSchema.addColumn("deptname", Type.TEXT);
@@ -291,7 +291,7 @@ public class TestLogicalPlanner {
static Schema expectedJoinSchema;
static {
- expectedJoinSchema = new Schema();
+ expectedJoinSchema = SchemaFactory.newV1();
expectedJoinSchema.addColumn("name", Type.TEXT);
expectedJoinSchema.addColumn("deptname", Type.TEXT);
expectedJoinSchema.addColumn("score", Type.INT4);
@@ -1290,7 +1290,7 @@ public class TestLogicalPlanner {
String tableName = CatalogUtil.normalizeIdentifier("partitioned_table");
String qualifiedTableName = CatalogUtil.buildFQName(DEFAULT_DATABASE_NAME, tableName);
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4)
.addColumn("name", Type.TEXT)
.addColumn("age", Type.INT4)
@@ -1299,7 +1299,7 @@ public class TestLogicalPlanner {
KeyValueSet opts = new KeyValueSet();
opts.set("file.delimiter", ",");
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn("id", Type.INT4);
partSchema.addColumn("name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
index c9e0c46..6479124 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
@@ -72,16 +72,16 @@ public class TestPlannerUtil {
catalog.createTablespace(DEFAULT_TABLESPACE_NAME, "hdfs://localhost:1234/warehouse");
catalog.createDatabase(DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("name", Type.TEXT);
schema.addColumn("empid", CatalogUtil.newSimpleDataType(Type.INT4));
schema.addColumn("deptname", Type.TEXT);
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("deptname", Type.TEXT);
schema2.addColumn("manager", Type.TEXT);
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("deptname", Type.TEXT);
schema3.addColumn("score", CatalogUtil.newSimpleDataType(Type.INT4));
@@ -188,10 +188,10 @@ public class TestPlannerUtil {
@Test
public final void testGetJoinKeyPairs() {
- Schema outerSchema = new Schema();
+ Schema outerSchema = SchemaFactory.newV1();
outerSchema.addColumn("employee.id1", CatalogUtil.newSimpleDataType(Type.INT4));
outerSchema.addColumn("employee.id2", CatalogUtil.newSimpleDataType(Type.INT4));
- Schema innerSchema = new Schema();
+ Schema innerSchema = SchemaFactory.newV1();
innerSchema.addColumn("people.fid1", CatalogUtil.newSimpleDataType(Type.INT4));
innerSchema.addColumn("people.fid2", CatalogUtil.newSimpleDataType(Type.INT4));
@@ -250,10 +250,10 @@ public class TestPlannerUtil {
@Test
public final void testGetSortKeysFromJoinQual() {
- Schema outerSchema = new Schema();
+ Schema outerSchema = SchemaFactory.newV1();
outerSchema.addColumn("employee.id1", CatalogUtil.newSimpleDataType(Type.INT4));
outerSchema.addColumn("employee.id2", CatalogUtil.newSimpleDataType(Type.INT4));
- Schema innerSchema = new Schema();
+ Schema innerSchema = SchemaFactory.newV1();
innerSchema.addColumn("people.fid1", CatalogUtil.newSimpleDataType(Type.INT4));
innerSchema.addColumn("people.fid2", CatalogUtil.newSimpleDataType(Type.INT4));
@@ -286,10 +286,10 @@ public class TestPlannerUtil {
@Test
public final void testComparatorsFromJoinQual() {
- Schema outerSchema = new Schema();
+ Schema outerSchema = SchemaFactory.newV1();
outerSchema.addColumn("employee.id1", CatalogUtil.newSimpleDataType(Type.INT4));
outerSchema.addColumn("employee.id2", CatalogUtil.newSimpleDataType(Type.INT4));
- Schema innerSchema = new Schema();
+ Schema innerSchema = SchemaFactory.newV1();
innerSchema.addColumn("people.fid1", CatalogUtil.newSimpleDataType(Type.INT4));
innerSchema.addColumn("people.fid2", CatalogUtil.newSimpleDataType(Type.INT4));
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestUniformRangePartition.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestUniformRangePartition.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestUniformRangePartition.java
index 178af47..ece17c7 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestUniformRangePartition.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestUniformRangePartition.java
@@ -19,6 +19,7 @@
package org.apache.tajo.engine.planner;
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.DatumFactory;
@@ -38,7 +39,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForINT2Asc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.INT2);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -68,7 +69,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForINT2Desc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.INT2);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -99,7 +100,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForINT4Asc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.INT4);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -129,7 +130,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForINT4Desc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.INT4);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -160,7 +161,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForINT8Asc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.INT8);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -190,7 +191,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForInt8Desc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.INT8);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -221,7 +222,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForFloat4Asc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.FLOAT4);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -251,7 +252,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForFloat4Desc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.FLOAT4);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -282,7 +283,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForFloat8Asc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.FLOAT8);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -312,7 +313,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForFloat8Desc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.FLOAT8);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -346,7 +347,7 @@ public class TestUniformRangePartition {
*/
@Test
public void testIncrementOfText() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_returnflag", Type.TEXT)
.addColumn("l_linestatus", Type.TEXT);
@@ -393,7 +394,7 @@ public class TestUniformRangePartition {
*/
@Test
public void testIncrementOfText2() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_returnflag", Type.TEXT)
.addColumn("l_linestatus", Type.TEXT);
@@ -438,7 +439,7 @@ public class TestUniformRangePartition {
*/
@Test
public void testIncrementOfText3() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_returnflag", Type.TEXT)
.addColumn("l_linestatus", Type.TEXT)
.addColumn("final", Type.TEXT);
@@ -471,7 +472,7 @@ public class TestUniformRangePartition {
@Test
public void testIncrementOfUnicode() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -499,7 +500,7 @@ public class TestUniformRangePartition {
@Test
public void testIncrementOfUnicodeOneCharSinglePartition() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -529,7 +530,7 @@ public class TestUniformRangePartition {
@Test
public void testIncrementOfUnicodeOneCharMultiPartition() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -559,7 +560,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForUnicodeTextAsc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -589,7 +590,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForUnicodeDiffLenBeginTextAsc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -619,7 +620,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForUnicodeDiffLenEndTextAsc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -649,7 +650,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForUnicodeTextDesc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -680,7 +681,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForUnicodeDiffLenBeginTextDesc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -711,7 +712,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForUnicodeDiffLenEndTextDesc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("col1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -742,7 +743,7 @@ public class TestUniformRangePartition {
@Test
public void testIncrementOfInt8() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_orderkey", Type.INT8)
.addColumn("l_linenumber", Type.INT8);
@@ -769,7 +770,7 @@ public class TestUniformRangePartition {
}
@Test public void testIncrementOfInt8AndFinal() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_orderkey", Type.INT8)
.addColumn("l_linenumber", Type.INT8)
.addColumn("final", Type.INT8);
@@ -802,7 +803,7 @@ public class TestUniformRangePartition {
@Test
public void testIncrementOfFloat8() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_orderkey", Type.FLOAT8)
.addColumn("l_linenumber", Type.FLOAT8)
.addColumn("final", Type.FLOAT8);
@@ -835,7 +836,7 @@ public class TestUniformRangePartition {
@Test
public void testIncrementOfInet4() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_orderkey", Type.INET4)
.addColumn("l_linenumber", Type.INET4)
.addColumn("final", Type.INET4);
@@ -868,7 +869,7 @@ public class TestUniformRangePartition {
@Test
public void testPartition() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("l_returnflag", Type.TEXT);
schema.addColumn("l_linestatus", Type.TEXT);
@@ -897,7 +898,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForOnePartNum() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_returnflag", Type.TEXT)
.addColumn("l_linestatus", Type.TEXT);
@@ -919,7 +920,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForOnePartNumWithOneOfTheValueNull() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_returnflag", Type.TEXT)
.addColumn("l_linestatus", Type.TEXT);
@@ -941,7 +942,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForMultipleChars() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("KEY1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -970,7 +971,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForMultipleChars2() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("KEY1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -1001,7 +1002,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForMultipleChars2Desc() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("KEY1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -1033,7 +1034,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForMultipleCharsWithSameFirstChar() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("KEY1", Type.TEXT);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
@@ -1064,7 +1065,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionForOnePartNumWithBothValueNull() {
- Schema schema = new Schema()
+ Schema schema = SchemaFactory.newV1()
.addColumn("l_returnflag", Type.TEXT)
.addColumn("l_linestatus", Type.TEXT);
@@ -1086,7 +1087,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionWithNull() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("l_returnflag", Type.TEXT);
schema.addColumn("l_linestatus", Type.TEXT);
@@ -1115,7 +1116,7 @@ public class TestUniformRangePartition {
@Test
public void testPartitionWithINET4() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("l_returnflag", Type.INET4);
schema.addColumn("l_linestatus", Type.INET4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
index 30c46e5..580fe86 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
@@ -79,7 +79,7 @@ public class TestExternalSortExec {
catalog.createDatabase(TajoConstants.DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf.setVar(TajoConf.ConfVars.WORKER_TEMPORAL_DIR, testDir.toString());
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("managerid", Type.INT4);
schema.addColumn("empid", Type.INT4);
schema.addColumn("deptname", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
index 2e26a2a..40dc373 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
@@ -101,7 +101,7 @@ public class TestFullOuterHashJoinExec {
// 7 | dep_7 | 1007
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
- Schema dep3Schema = new Schema();
+ Schema dep3Schema = SchemaFactory.newV1();
dep3Schema.addColumn("dep_id", Type.INT4);
dep3Schema.addColumn("dep_name", Type.TEXT);
dep3Schema.addColumn("loc_id", Type.INT4);
@@ -131,7 +131,7 @@ public class TestFullOuterHashJoinExec {
// 102 | job_102
// 103 | job_103
- Schema job3Schema = new Schema();
+ Schema job3Schema = SchemaFactory.newV1();
job3Schema.addColumn("job_id", Type.INT4);
job3Schema.addColumn("job_title", Type.TEXT);
@@ -166,7 +166,7 @@ public class TestFullOuterHashJoinExec {
// 21 | fn_21 | ln_21 | 1 | 123 | 101
// 23 | fn_23 | ln_23 | 3 | 369 | 103
- Schema emp3Schema = new Schema();
+ Schema emp3Schema = SchemaFactory.newV1();
emp3Schema.addColumn("emp_id", Type.INT4);
emp3Schema.addColumn("first_name", Type.TEXT);
emp3Schema.addColumn("last_name", Type.TEXT);
@@ -222,7 +222,7 @@ public class TestFullOuterHashJoinExec {
// -----------------------------------------------
// this table is empty, no rows
- Schema phone3Schema = new Schema();
+ Schema phone3Schema = SchemaFactory.newV1();
phone3Schema.addColumn("emp_id", Type.INT4);
phone3Schema.addColumn("phone_number", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
index fd42b9a..9c426ad 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
@@ -105,7 +105,7 @@ public class TestFullOuterMergeJoinExec {
// 7 | dep_7 | 1007
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
- Schema dep3Schema = new Schema();
+ Schema dep3Schema = SchemaFactory.newV1();
dep3Schema.addColumn("dep_id", Type.INT4);
dep3Schema.addColumn("dep_name", Type.TEXT);
dep3Schema.addColumn("loc_id", Type.INT4);
@@ -143,7 +143,7 @@ public class TestFullOuterMergeJoinExec {
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
// 10 | dep_10 | 1010
- Schema dep4Schema = new Schema();
+ Schema dep4Schema = SchemaFactory.newV1();
dep4Schema.addColumn("dep_id", Type.INT4);
dep4Schema.addColumn("dep_name", Type.TEXT);
dep4Schema.addColumn("loc_id", Type.INT4);
@@ -175,7 +175,7 @@ public class TestFullOuterMergeJoinExec {
// 102 | job_102
// 103 | job_103
- Schema job3Schema = new Schema();
+ Schema job3Schema = SchemaFactory.newV1();
job3Schema.addColumn("job_id", Type.INT4);
job3Schema.addColumn("job_title", Type.TEXT);
@@ -210,7 +210,7 @@ public class TestFullOuterMergeJoinExec {
// 21 | fn_21 | ln_21 | 1 | 123 | 101
// 23 | fn_23 | ln_23 | 3 | 369 | 103
- Schema emp3Schema = new Schema();
+ Schema emp3Schema = SchemaFactory.newV1();
emp3Schema.addColumn("emp_id", Type.INT4);
emp3Schema.addColumn("first_name", Type.TEXT);
emp3Schema.addColumn("last_name", Type.TEXT);
@@ -266,7 +266,7 @@ public class TestFullOuterMergeJoinExec {
// -----------------------------------------------
// this table is empty, no rows
- Schema phone3Schema = new Schema();
+ Schema phone3Schema = SchemaFactory.newV1();
phone3Schema.addColumn("emp_id", Type.INT4);
phone3Schema.addColumn("phone_number", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
index aeda300..f4257f1 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
@@ -78,7 +78,7 @@ public class TestHashAntiJoinExec {
catalog.createDatabase(DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf = util.getConfiguration();
- Schema employeeSchema = new Schema();
+ Schema employeeSchema = SchemaFactory.newV1();
employeeSchema.addColumn("managerid", Type.INT4);
employeeSchema.addColumn("empid", Type.INT4);
employeeSchema.addColumn("memid", Type.INT4);
@@ -105,7 +105,7 @@ public class TestHashAntiJoinExec {
employee = CatalogUtil.newTableDesc("default.employee", employeeSchema, employeeMeta, employeePath);
catalog.createTable(employee);
- Schema peopleSchema = new Schema();
+ Schema peopleSchema = SchemaFactory.newV1();
peopleSchema.addColumn("empid", Type.INT4);
peopleSchema.addColumn("fk_memid", Type.INT4);
peopleSchema.addColumn("name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
index 2f4d66f..0731d9c 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
@@ -80,7 +80,7 @@ public class TestHashJoinExec {
catalog.createDatabase(TajoConstants.DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf = util.getConfiguration();
- Schema employeeSchema = new Schema();
+ Schema employeeSchema = SchemaFactory.newV1();
employeeSchema.addColumn("managerid", Type.INT4);
employeeSchema.addColumn("empid", Type.INT4);
employeeSchema.addColumn("memid", Type.INT4);
@@ -104,7 +104,7 @@ public class TestHashJoinExec {
employee = CatalogUtil.newTableDesc("default.employee", employeeSchema, employeeMeta, employeePath);
catalog.createTable(employee);
- Schema peopleSchema = new Schema();
+ Schema peopleSchema = SchemaFactory.newV1();
peopleSchema.addColumn("empid", Type.INT4);
peopleSchema.addColumn("fk_memid", Type.INT4);
peopleSchema.addColumn("name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
index 2b50310..5244652 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
@@ -78,7 +78,7 @@ public class TestHashSemiJoinExec {
catalog.createDatabase(DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf = util.getConfiguration();
- Schema employeeSchema = new Schema();
+ Schema employeeSchema = SchemaFactory.newV1();
employeeSchema.addColumn("managerid", Type.INT4);
employeeSchema.addColumn("empid", Type.INT4);
employeeSchema.addColumn("memid", Type.INT4);
@@ -105,7 +105,7 @@ public class TestHashSemiJoinExec {
employee = CatalogUtil.newTableDesc("default.employee", employeeSchema, employeeMeta, employeePath);
catalog.createTable(employee);
- Schema peopleSchema = new Schema();
+ Schema peopleSchema = SchemaFactory.newV1();
peopleSchema.addColumn("empid", Type.INT4);
peopleSchema.addColumn("fk_memid", Type.INT4);
peopleSchema.addColumn("name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
index ab5f509..61ccd00 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
@@ -99,7 +99,7 @@ public class TestLeftOuterHashJoinExec {
// 7 | dep_7 | 1007
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
- Schema dep3Schema = new Schema();
+ Schema dep3Schema = SchemaFactory.newV1();
dep3Schema.addColumn("dep_id", Type.INT4);
dep3Schema.addColumn("dep_name", Type.TEXT);
dep3Schema.addColumn("loc_id", Type.INT4);
@@ -129,7 +129,7 @@ public class TestLeftOuterHashJoinExec {
// 102 | job_102
// 103 | job_103
- Schema job3Schema = new Schema();
+ Schema job3Schema = SchemaFactory.newV1();
job3Schema.addColumn("job_id", Type.INT4);
job3Schema.addColumn("job_title", Type.TEXT);
@@ -165,7 +165,7 @@ public class TestLeftOuterHashJoinExec {
// 21 | fn_21 | ln_21 | 1 | 123 | 101
// 23 | fn_23 | ln_23 | 3 | 369 | 103
- Schema emp3Schema = new Schema();
+ Schema emp3Schema = SchemaFactory.newV1();
emp3Schema.addColumn("emp_id", Type.INT4);
emp3Schema.addColumn("first_name", Type.TEXT);
emp3Schema.addColumn("last_name", Type.TEXT);
@@ -222,7 +222,7 @@ public class TestLeftOuterHashJoinExec {
// -----------------------------------------------
// this table is empty, no rows
- Schema phone3Schema = new Schema();
+ Schema phone3Schema = SchemaFactory.newV1();
phone3Schema.addColumn("emp_id", Type.INT4);
phone3Schema.addColumn("phone_number", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
index d297825..88018e9 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
@@ -78,7 +78,7 @@ public class TestMergeJoinExec {
catalog.createDatabase(TajoConstants.DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf = util.getConfiguration();
- Schema employeeSchema = new Schema();
+ Schema employeeSchema = SchemaFactory.newV1();
employeeSchema.addColumn("managerid", Type.INT4);
employeeSchema.addColumn("empid", Type.INT4);
employeeSchema.addColumn("memid", Type.INT4);
@@ -108,7 +108,7 @@ public class TestMergeJoinExec {
employee = CatalogUtil.newTableDesc("default.employee", employeeSchema, employeeMeta, employeePath);
catalog.createTable(employee);
- Schema peopleSchema = new Schema();
+ Schema peopleSchema = SchemaFactory.newV1();
peopleSchema.addColumn("empid", Type.INT4);
peopleSchema.addColumn("fk_memid", Type.INT4);
peopleSchema.addColumn("name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
index 2528399..28d99b1 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
@@ -104,12 +104,12 @@ public class TestPhysicalPlanner {
catalog.createFunction(funcDesc);
}
- Schema employeeSchema = new Schema();
+ Schema employeeSchema = SchemaFactory.newV1();
employeeSchema.addColumn("name", Type.TEXT);
employeeSchema.addColumn("empid", Type.INT4);
employeeSchema.addColumn("deptname", Type.TEXT);
- Schema scoreSchema = new Schema();
+ Schema scoreSchema = SchemaFactory.newV1();
scoreSchema.addColumn("deptname", Type.TEXT);
scoreSchema.addColumn("class", Type.TEXT);
scoreSchema.addColumn("score", Type.INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
index 15250a3..21a08bd 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
@@ -80,7 +80,7 @@ public class TestProgressExternalSortExec {
catalog.createDatabase(DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf.setVar(TajoConf.ConfVars.WORKER_TEMPORAL_DIR, testDir.toString());
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("managerid", TajoDataTypes.Type.INT4);
schema.addColumn("empid", TajoDataTypes.Type.INT4);
schema.addColumn("deptname", TajoDataTypes.Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
index 9a7eaff..a5c54b8 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
@@ -93,7 +93,7 @@ public class TestRightOuterHashJoinExec {
// 7 | dep_7 | 1007
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
- Schema dep3Schema = new Schema();
+ Schema dep3Schema = SchemaFactory.newV1();
dep3Schema.addColumn("dep_id", Type.INT4);
dep3Schema.addColumn("dep_name", Type.TEXT);
dep3Schema.addColumn("loc_id", Type.INT4);
@@ -124,7 +124,7 @@ public class TestRightOuterHashJoinExec {
// 102 | job_102
// 103 | job_103
- Schema job3Schema = new Schema();
+ Schema job3Schema = SchemaFactory.newV1();
job3Schema.addColumn("job_id", Type.INT4);
job3Schema.addColumn("job_title", Type.TEXT);
@@ -160,7 +160,7 @@ public class TestRightOuterHashJoinExec {
// 21 | fn_21 | ln_21 | 1 | 123 | 101
// 23 | fn_23 | ln_23 | 3 | 369 | 103
- Schema emp3Schema = new Schema();
+ Schema emp3Schema = SchemaFactory.newV1();
emp3Schema.addColumn("emp_id", Type.INT4);
emp3Schema.addColumn("first_name", Type.TEXT);
emp3Schema.addColumn("last_name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
index 280722b..22946e9 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
@@ -104,7 +104,7 @@ public class TestRightOuterMergeJoinExec {
// 7 | dep_7 | 1007
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
- Schema dep3Schema = new Schema();
+ Schema dep3Schema = SchemaFactory.newV1();
dep3Schema.addColumn("dep_id", Type.INT4);
dep3Schema.addColumn("dep_name", Type.TEXT);
dep3Schema.addColumn("loc_id", Type.INT4);
@@ -143,7 +143,7 @@ public class TestRightOuterMergeJoinExec {
// 8 | dep_8 | 1008
// 9 | dep_9 | 1009
// 10 | dep_10 | 1010
- Schema dep4Schema = new Schema();
+ Schema dep4Schema = SchemaFactory.newV1();
dep4Schema.addColumn("dep_id", Type.INT4);
dep4Schema.addColumn("dep_name", Type.TEXT);
dep4Schema.addColumn("loc_id", Type.INT4);
@@ -176,7 +176,7 @@ public class TestRightOuterMergeJoinExec {
// 102 | job_102
// 103 | job_103
- Schema job3Schema = new Schema();
+ Schema job3Schema = SchemaFactory.newV1();
job3Schema.addColumn("job_id", Type.INT4);
job3Schema.addColumn("job_title", Type.TEXT);
@@ -212,7 +212,7 @@ public class TestRightOuterMergeJoinExec {
// 21 | fn_21 | ln_21 | 1 | 123 | 101
// 23 | fn_23 | ln_23 | 3 | 369 | 103
- Schema emp3Schema = new Schema();
+ Schema emp3Schema = SchemaFactory.newV1();
emp3Schema.addColumn("emp_id", Type.INT4);
emp3Schema.addColumn("first_name", Type.TEXT);
emp3Schema.addColumn("last_name", Type.TEXT);
@@ -269,7 +269,7 @@ public class TestRightOuterMergeJoinExec {
// -----------------------------------------------
// this table is empty, no rows
- Schema phone3Schema = new Schema();
+ Schema phone3Schema = SchemaFactory.newV1();
phone3Schema.addColumn("emp_id", Type.INT4);
phone3Schema.addColumn("phone_number", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
index 872815d..43cc719 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
@@ -81,7 +81,7 @@ public class TestSortExec {
workDir = CommonTestingUtil.getTestDir(TEST_PATH);
sm = TablespaceManager.getLocalFs();
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("managerid", Type.INT4);
schema.addColumn("empid", Type.INT4);
schema.addColumn("deptname", Type.TEXT);
@@ -156,7 +156,7 @@ public class TestSortExec {
* Later it should be moved TestUniformPartitions.
*/
public void testTAJO_946() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("l_orderkey", Type.INT8);
SortSpec [] sortSpecs = PlannerUtil.schemaToSortSpecs(schema);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortIntersectExec.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortIntersectExec.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortIntersectExec.java
index df78667..2012362 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortIntersectExec.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestSortIntersectExec.java
@@ -84,7 +84,7 @@ public class TestSortIntersectExec {
catalog.createDatabase(DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
conf = util.getConfiguration();
- Schema employeeSchema1 = new Schema();
+ Schema employeeSchema1 = SchemaFactory.newV1();
employeeSchema1.addColumn("managerid", TajoDataTypes.Type.INT4);
employeeSchema1.addColumn("empid", TajoDataTypes.Type.INT4);
employeeSchema1.addColumn("memid", TajoDataTypes.Type.INT4);
@@ -111,7 +111,7 @@ public class TestSortIntersectExec {
employee1 = CatalogUtil.newTableDesc("default.employee1", employeeSchema1, employeeMeta1, employeePath1);
catalog.createTable(employee1);
- Schema employeeSchema2 = new Schema();
+ Schema employeeSchema2 = SchemaFactory.newV1();
employeeSchema2.addColumn("managerid", TajoDataTypes.Type.INT4);
employeeSchema2.addColumn("empid", TajoDataTypes.Type.INT4);
employeeSchema2.addColumn("memid", TajoDataTypes.Type.INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java
index 2f7330b..3485df4 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestTupleSorter.java
@@ -24,6 +24,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.SortSpec;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.datum.Datum;
@@ -69,7 +70,7 @@ public class TestTupleSorter {
Column col4 = new Column("col4", Type.INT8);
Column col5 = new Column("col5", Type.INTERVAL);
- Schema schema = new Schema(new Column[] {col0, col1, col2, col3, col4, col5});
+ Schema schema = SchemaFactory.newV1(new Column[] {col0, col1, col2, col3, col4, col5});
long[] time1 = new long[ITERATION];
long[] time2 = new long[ITERATION];
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestUnSafeTuple.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestUnSafeTuple.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestUnSafeTuple.java
index 48170f6..e2b865e 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestUnSafeTuple.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/physical/TestUnSafeTuple.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.planner.physical;
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.common.TajoDataTypes.Type;
import org.apache.tajo.datum.Datum;
@@ -48,7 +49,7 @@ public class TestUnSafeTuple {
Column col3 = new Column("col3", Type.FLOAT4);
Column col4 = new Column("col4", Type.FLOAT8);
- schema = new Schema(new Column[]{col0, col1, col2, col3, col4});
+ schema = SchemaFactory.newV1(new Column[]{col0, col1, col2, col3, col4});
}
@Test
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
index ea4a7c8..b346d08 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.query;
import org.apache.tajo.*;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.storage.StorageConstants;
@@ -420,7 +421,7 @@ public class TestGroupByQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.TEXT);
schema.addColumn("code", Type.TEXT);
schema.addColumn("qty", Type.INT4);
@@ -474,7 +475,7 @@ public class TestGroupByQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.TEXT);
schema.addColumn("col2", Type.TEXT);
schema.addColumn("col3", Type.TEXT);
@@ -504,7 +505,7 @@ public class TestGroupByQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.TEXT);
schema.addColumn("col2", Type.TEXT);
@@ -691,7 +692,7 @@ public class TestGroupByQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.TEXT);
schema.addColumn("col2", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
index d4712dc..a179f88 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
@@ -37,6 +37,7 @@ import org.apache.tajo.IntegrationTest;
import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.conf.TajoConf;
@@ -821,7 +822,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.TEXT);
schema.addColumn("name", Type.TEXT);
List<String> datas = new ArrayList<>();
@@ -877,7 +878,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.TEXT);
schema.addColumn("name", Type.TEXT);
List<String> datas = new ArrayList<>();
@@ -935,7 +936,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.TEXT);
schema.addColumn("name", Type.TEXT);
List<String> datas = new ArrayList<>();
@@ -993,7 +994,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id1", Type.TEXT);
schema.addColumn("id2", Type.TEXT);
schema.addColumn("name", Type.TEXT);
@@ -1050,7 +1051,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
List<String> datas = new ArrayList<>();
@@ -1106,7 +1107,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("rk", Type.TEXT);
schema.addColumn("col2_key", Type.TEXT);
schema.addColumn("col2_value", Type.TEXT);
@@ -1195,7 +1196,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
List<String> datas = new ArrayList<>();
@@ -1267,7 +1268,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.TEXT);
schema.addColumn("name", Type.TEXT);
List<String> datas = new ArrayList<>();
@@ -1388,7 +1389,7 @@ public class TestHBaseTable extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.TEXT);
schema.addColumn("name", Type.TEXT);
schema.addColumn("comment", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
index 9b5b9ed..34f26a6 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
@@ -26,10 +26,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.catalog.Column;
-import org.apache.tajo.catalog.Schema;
-import org.apache.tajo.catalog.TableDesc;
-import org.apache.tajo.catalog.TableMeta;
+import org.apache.tajo.catalog.*;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.datum.Datum;
@@ -149,37 +146,37 @@ public class TestJoinQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
String[] data = new String[]{"1|table11-1", "2|table11-2", "3|table11-3", "4|table11-4", "5|table11-5"};
TajoTestingCluster.createTable("jointable11", schema, tableOptions, data, 2);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
data = new String[]{"1|table12-1", "2|table12-2"};
TajoTestingCluster.createTable("jointable12", schema, tableOptions, data, 2);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
data = new String[]{"2|table13-2", "3|table13-3"};
TajoTestingCluster.createTable("jointable13", schema, tableOptions, data);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
data = new String[]{"1|table14-1", "2|table14-2", "3|table14-3", "4|table14-4"};
TajoTestingCluster.createTable("jointable14", schema, tableOptions, data);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
data = new String[]{};
TajoTestingCluster.createTable("jointable15", schema, tableOptions, data);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
data = new String[]{"1000000|a", "1000001|b", "2|c", "3|d", "4|e"};
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestNullValues.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
index 791a819..2bca027 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestNullValues.java
@@ -22,6 +22,7 @@ import org.apache.tajo.IntegrationTest;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.TpchTestBase;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.client.TajoClient;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.storage.StorageConstants;
@@ -58,7 +59,7 @@ public class TestNullValues {
@Test
public final void testIsNull() throws Exception {
String [] table = new String[] {"nulltable1"};
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT4);
schema.addColumn("col2", Type.TEXT);
schema.addColumn("col3", Type.FLOAT4);
@@ -83,7 +84,7 @@ public class TestNullValues {
@Test
public final void testIsNotNull() throws Exception {
String [] table = new String[] {"nulltable2"};
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT4);
schema.addColumn("col2", Type.TEXT);
Schema [] schemas = new Schema[] {schema};
@@ -108,7 +109,7 @@ public class TestNullValues {
@Test
public final void testIsNotNull2() throws Exception {
String [] table = new String[] {"nulltable3"};
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT8);
schema.addColumn("col2", Type.INT8);
schema.addColumn("col3", Type.INT8);
@@ -138,7 +139,7 @@ public class TestNullValues {
@Test
public final void testIsNotNull3() throws Exception {
String [] table = new String[] {"nulltable4"};
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT8);
schema.addColumn("col2", Type.INT8);
schema.addColumn("col3", Type.INT8);
@@ -251,7 +252,7 @@ public class TestNullValues {
private ResultSet runNullTableQuery(String tableName, String query, TajoClient client) throws Exception {
String [] table = new String[] {tableName};
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT4);
schema.addColumn("col2", Type.TEXT);
schema.addColumn("col3", Type.FLOAT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
index a2dec50..f206e20 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
@@ -23,6 +23,7 @@ import org.apache.tajo.*;
import org.apache.tajo.TajoProtos.QueryState;
import org.apache.tajo.catalog.CatalogService;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.client.QueryStatus;
import org.apache.tajo.common.TajoDataTypes.Type;
@@ -498,7 +499,7 @@ public class TestSelectQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
String[] data = new String[]{ "1|table11-1", "2|table11-2", "3|table11-3", "4|table11-4", "5|table11-5" };
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java
index d889d34..582d0b0 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.query;
import org.apache.tajo.*;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.storage.StorageConstants;
@@ -111,7 +112,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT4);
schema.addColumn("col2", Type.TEXT);
String[] data = new String[]{
@@ -213,7 +214,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
String[] data = new String[]{
@@ -239,7 +240,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
String[] data = new String[]{ "1|111", "2|\\N", "3|333" };
@@ -276,7 +277,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
String[] data = new String[]{ "1|111", "2|\\N", "3|333" };
@@ -304,7 +305,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
String[] data = new String[]{ "1|111", "2|\\N", "3|333" };
@@ -332,7 +333,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("name", Type.TEXT);
String[] data = new String[]{ "1|111", "2|\\N", "3|333" };
@@ -362,7 +363,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT4);
schema.addColumn("col2", Type.TEXT);
String[] data = new String[]{
@@ -390,7 +391,7 @@ public class TestSortQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.INT4);
schema.addColumn("col2", Type.TEXT);
String[] data = new String[]{
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
index de2cbdf..3438759 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
@@ -24,10 +24,7 @@ import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionCodecFactory;
import org.apache.hadoop.io.compress.DeflateCodec;
import org.apache.tajo.*;
-import org.apache.tajo.catalog.CatalogService;
-import org.apache.tajo.catalog.CatalogUtil;
-import org.apache.tajo.catalog.Schema;
-import org.apache.tajo.catalog.TableDesc;
+import org.apache.tajo.catalog.*;
import org.apache.tajo.client.TajoClientUtil;
import org.apache.tajo.exception.ReturnStateUtil;
import org.apache.tajo.catalog.proto.CatalogProtos.PartitionDescProto;
@@ -1094,7 +1091,7 @@ public class TestTablePartitions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.TEXT);
schema.addColumn("col2", TajoDataTypes.Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestWindowQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestWindowQuery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestWindowQuery.java
index 9993992..19b8bbc 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestWindowQuery.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestWindowQuery.java
@@ -23,6 +23,7 @@ import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.storage.StorageConstants;
import org.apache.tajo.util.KeyValueSet;
@@ -265,7 +266,7 @@ public class TestWindowQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("time", TajoDataTypes.Type.TIME);
String[] data = new String[]{ "1|12:11:12", "2|10:11:13", "2|05:42:41" };
@@ -300,7 +301,7 @@ public class TestWindowQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("time", TajoDataTypes.Type.TIME);
String[] data = new String[]{ "1|12:11:12", "2|10:11:13", "2|05:42:41" };
@@ -335,7 +336,7 @@ public class TestWindowQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("time", TajoDataTypes.Type.TIME);
String[] data = new String[]{ "1|12:11:12", "2|10:11:13", "2|05:42:41" };
@@ -384,7 +385,7 @@ public class TestWindowQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("time", TajoDataTypes.Type.TIME);
String[] data = new String[]{ "1|12:11:12", "2|10:11:13", "2|05:42:41" };
@@ -440,7 +441,7 @@ public class TestWindowQuery extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("time", TajoDataTypes.Type.TIME);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/util/TestTupleUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/util/TestTupleUtil.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/util/TestTupleUtil.java
index 4a3565e..5683c7a 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/util/TestTupleUtil.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/util/TestTupleUtil.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.util;
import org.apache.hadoop.fs.Path;
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.Datum;
@@ -38,7 +39,7 @@ import static org.junit.Assert.*;
public class TestTupleUtil {
@Test
public final void testFixedSizeChar() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.CHAR, 5);
Tuple tuple = new VTuple(1);
@@ -56,7 +57,7 @@ public class TestTupleUtil {
@Test
public final void testToBytesAndToTuple() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", Type.BOOLEAN);
schema.addColumn("col2", Type.BIT);
schema.addColumn("col3", Type.CHAR);
@@ -97,7 +98,7 @@ public class TestTupleUtil {
VTuple sTuple = new VTuple(7);
VTuple eTuple = new VTuple(7);
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("numByte", Type.BIT);
schema.addColumn("numChar", Type.CHAR);
@@ -141,7 +142,7 @@ public class TestTupleUtil {
@Test
public void testBuildTupleFromPartitionPath() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("key1", Type.INT8);
schema.addColumn("key2", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/storage/TestRowFile.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/storage/TestRowFile.java b/tajo-core-tests/src/test/java/org/apache/tajo/storage/TestRowFile.java
index 01ae39c..25f0e61 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/storage/TestRowFile.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/storage/TestRowFile.java
@@ -28,6 +28,7 @@ import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.TpchTestBase;
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;
@@ -62,7 +63,7 @@ public class TestRowFile {
@Test
public void test() throws IOException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4);
schema.addColumn("age", Type.INT8);
schema.addColumn("description", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/RestTestUtils.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/RestTestUtils.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/RestTestUtils.java
deleted file mode 100644
index 7a5b38d..0000000
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/RestTestUtils.java
+++ /dev/null
@@ -1,64 +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 org.apache.tajo.ws.rs.resources;
-
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TimeZone;
-
-import org.apache.hadoop.fs.Path;
-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.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.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;
-
-public class RestTestUtils {
-
- public static 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;
- }
-}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestClusterResource.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestClusterResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestClusterResource.java
index 52e586b..de0c5ba 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestClusterResource.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestClusterResource.java
@@ -30,6 +30,7 @@ import javax.ws.rs.core.GenericType;
import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.conf.TajoConf.ConfVars;
+import org.apache.tajo.plan.serder.PlanGsonHelper;
import org.apache.tajo.ws.rs.netty.gson.GsonFeature;
import org.glassfish.jersey.client.ClientProperties;
import org.glassfish.jersey.filter.LoggingFilter;
@@ -55,7 +56,7 @@ public class TestClusterResource extends QueryTestCaseBase {
restServiceURI = new URI("http", null, address.getHostName(), address.getPort(), "/rest", null, null);
clusterURI = new URI(restServiceURI + "/cluster");
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-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestDatabasesResource.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestDatabasesResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestDatabasesResource.java
index 6ea95f8..614dc73 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestDatabasesResource.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestDatabasesResource.java
@@ -34,6 +34,7 @@ import javax.ws.rs.core.Response.Status;
import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.conf.TajoConf.ConfVars;
+import org.apache.tajo.plan.serder.PlanGsonHelper;
import org.apache.tajo.ws.rs.netty.gson.GsonFeature;
import org.apache.tajo.ws.rs.requests.NewDatabaseRequest;
import org.apache.tajo.ws.rs.responses.DatabaseInfoResponse;
@@ -61,7 +62,7 @@ public class TestDatabasesResource extends QueryTestCaseBase {
restServiceURI = new URI("http", null, address.getHostName(), address.getPort(), "/rest", null, null);
databasesURI = new URI(restServiceURI + "/databases");
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-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestFunctionsResource.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestFunctionsResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestFunctionsResource.java
index db7b836..fb2d1d7 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestFunctionsResource.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestFunctionsResource.java
@@ -22,6 +22,7 @@ import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.function.FunctionSignature;
+import org.apache.tajo.plan.serder.PlanGsonHelper;
import org.apache.tajo.ws.rs.netty.gson.GsonFeature;
import org.glassfish.jersey.client.ClientProperties;
import org.glassfish.jersey.filter.LoggingFilter;
@@ -56,7 +57,7 @@ public class TestFunctionsResource extends QueryTestCaseBase {
restServiceURI = new URI("http", null, address.getHostName(), address.getPort(), "/rest", null, null);
functionsURI = new URI(restServiceURI + "/functions");
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-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java
index 7fcb640..4638a8c 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java
@@ -25,6 +25,7 @@ import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.error.Errors.ResultCode;
import org.apache.tajo.exception.ErrorUtil;
import org.apache.tajo.master.QueryInfo;
+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;
@@ -69,7 +70,7 @@ public class TestQueryResource extends QueryTestCaseBase {
sessionsURI = new URI(restServiceURI + "/sessions");
queriesURI = new URI(restServiceURI + "/queries");
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-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
index 331fed7..8b9c93d 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
@@ -23,6 +23,7 @@ import org.apache.tajo.TajoConstants;
import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.error.Errors.ResultCode;
import org.apache.tajo.exception.ErrorUtil;
+import org.apache.tajo.plan.serder.PlanGsonHelper;
import org.apache.tajo.storage.RowStoreUtil;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.ws.rs.netty.gson.GsonFeature;
@@ -80,7 +81,7 @@ public class TestQueryResultResource extends QueryTestCaseBase {
sessionsURI = new URI(restServiceURI + "/sessions");
queriesURI = new URI(restServiceURI + "/queries");
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-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestSessionsResource.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestSessionsResource.java b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestSessionsResource.java
index 83da87b..3ddeb95 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestSessionsResource.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestSessionsResource.java
@@ -34,6 +34,7 @@ import javax.ws.rs.core.Response.Status;
import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.conf.TajoConf.ConfVars;
+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.responses.NewSessionResponse;
@@ -61,7 +62,7 @@ public class TestSessionsResource extends QueryTestCaseBase {
restServiceURI = new URI("http", null, address.getHostName(), address.getPort(), "/rest", null, null);
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)
[4/5] tajo git commit: TAJO-2099: Implement an Adapter for legacy
Schema.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
index fe4b4a7..c64fe43 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java
@@ -181,7 +181,7 @@ public class TestCatalog {
}
private TableDesc createMockupTable(String databaseName, String tableName) throws IOException {
- schema1 = new Schema();
+ schema1 = SchemaFactory.newV1();
schema1.addColumn(FieldName1, Type.BLOB);
schema1.addColumn(FieldName2, Type.INT4);
schema1.addColumn(FieldName3, Type.INT8);
@@ -299,7 +299,7 @@ public class TestCatalog {
@Test
public void testGetTable() throws Exception {
- schema1 = new Schema();
+ schema1 = SchemaFactory.newV1();
schema1.addColumn(FieldName1, Type.BLOB);
schema1.addColumn(FieldName2, Type.INT4);
schema1.addColumn(FieldName3, Type.INT8);
@@ -361,18 +361,18 @@ public class TestCatalog {
// |- s8
// |- s9
- Schema nestedSchema = new Schema();
+ Schema nestedSchema = SchemaFactory.newV1();
nestedSchema.addColumn("s1", Type.INT8);
nestedSchema.addColumn("s2", Type.INT8);
- Schema s5 = new Schema();
+ Schema s5 = SchemaFactory.newV1();
s5.addColumn("s6", Type.INT8);
- Schema s7 = new Schema();
+ Schema s7 = SchemaFactory.newV1();
s7.addColumn("s5", new TypeDesc(s5));
- Schema s3 = new Schema();
+ Schema s3 = SchemaFactory.newV1();
s3.addColumn("s4", Type.INT8);
s3.addColumn("s7", new TypeDesc(s7));
s3.addColumn("s8", Type.INT8);
@@ -398,18 +398,18 @@ public class TestCatalog {
// |- s3
// |- s4
- Schema nestedSchema = new Schema();
+ Schema nestedSchema = SchemaFactory.newV1();
nestedSchema.addColumn("s1", Type.INT8);
nestedSchema.addColumn("s2", Type.INT8);
- Schema s5 = new Schema();
+ Schema s5 = SchemaFactory.newV1();
s5.addColumn("s6", Type.INT8);
- Schema s7 = new Schema();
+ Schema s7 = SchemaFactory.newV1();
s7.addColumn("s5", new TypeDesc(s5));
- Schema s3 = new Schema();
+ Schema s3 = SchemaFactory.newV1();
s3.addColumn("s4", Type.INT8);
s3.addColumn("s7", new TypeDesc(s7));
s3.addColumn("s8", Type.INT8);
@@ -426,7 +426,7 @@ public class TestCatalog {
static Schema relationSchema;
public static TableDesc prepareTable() throws IOException {
- relationSchema = new Schema();
+ relationSchema = SchemaFactory.newV1();
relationSchema.addColumn(DEFAULT_DATABASE_NAME + ".indexed.id", Type.INT4)
.addColumn(DEFAULT_DATABASE_NAME + ".indexed.name", Type.TEXT)
.addColumn(DEFAULT_DATABASE_NAME + ".indexed.age", Type.INT4)
@@ -625,7 +625,7 @@ public class TestCatalog {
@Test
public final void testAddAndDeleteTablePartitionByHash1() throws Exception {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4)
.addColumn("name", Type.TEXT)
.addColumn("age", Type.INT4)
@@ -637,7 +637,7 @@ public class TestCatalog {
TableMeta meta = CatalogUtil.newTableMeta("TEXT", opts);
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn("id", Type.INT4);
PartitionMethodDesc partitionDesc =
@@ -665,7 +665,7 @@ public class TestCatalog {
@Test
public final void testAddAndDeleteTablePartitionByHash2() throws Exception {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4)
.addColumn("name", Type.TEXT)
.addColumn("age", Type.INT4)
@@ -676,7 +676,7 @@ public class TestCatalog {
opts.set("file.delimiter", ",");
TableMeta meta = CatalogUtil.newTableMeta("TEXT", opts);
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn("id", Type.INT4);
PartitionMethodDesc partitionDesc =
new PartitionMethodDesc(DEFAULT_DATABASE_NAME, tableName,
@@ -703,7 +703,7 @@ public class TestCatalog {
@Test
public final void testAddAndDeleteTablePartitionByList() throws Exception {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4)
.addColumn("name", Type.TEXT)
.addColumn("age", Type.INT4)
@@ -714,7 +714,7 @@ public class TestCatalog {
opts.set("file.delimiter", ",");
TableMeta meta = CatalogUtil.newTableMeta("TEXT", opts);
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn("id", Type.INT4);
PartitionMethodDesc partitionDesc =
new PartitionMethodDesc(DEFAULT_DATABASE_NAME, tableName,
@@ -740,7 +740,7 @@ public class TestCatalog {
@Test
public final void testAddAndDeleteTablePartitionByRange() throws Exception {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4)
.addColumn("name", Type.TEXT)
.addColumn("age", Type.INT4)
@@ -751,7 +751,7 @@ public class TestCatalog {
opts.set("file.delimiter", ",");
TableMeta meta = CatalogUtil.newTableMeta("TEXT", opts);
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn("id", Type.INT4);
PartitionMethodDesc partitionDesc =
new PartitionMethodDesc(DEFAULT_DATABASE_NAME, tableName, CatalogProtos.PartitionType.RANGE,
@@ -777,7 +777,7 @@ public class TestCatalog {
// TODO: This should be added at TAJO-1891
public final void testAddAndDeleteTablePartitionByColumn() throws Exception {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", Type.INT4)
.addColumn("name", Type.TEXT)
.addColumn("age", Type.INT4)
@@ -789,7 +789,7 @@ public class TestCatalog {
opts.set("file.delimiter", ",");
TableMeta meta = CatalogUtil.newTableMeta("TEXT", opts);
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn("id", Type.INT4);
partSchema.addColumn("name", Type.TEXT);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java
index 314dd8c..f3933ff 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java
@@ -334,20 +334,20 @@ public class TestCatalogAgainstCaseSensitivity {
String databaseName = "TestDatabase1";
String tableName = "nested_Table";
- Schema schema = new Schema(
+ Schema schema = SchemaFactory.newV1(
new Column[]{
new Column("CoL1", CatalogUtil.newSimpleDataType(Type.INT4)),
new Column("CoL2", CatalogUtil.newSimpleDataType(Type.FLOAT4)),
new Column("CoL3", CatalogUtil.newSimpleDataType(Type.TEXT)),
});
- Schema tableSchema = new Schema();
+ Schema tableSchema = SchemaFactory.newV1();
tableSchema.addColumn("RecoRd1", new TypeDesc(schema));
tableSchema.addColumn("CoL1", CatalogUtil.newSimpleDataType(Type.INT4));
tableSchema.addColumn("CoL3", CatalogUtil.newSimpleDataType(Type.TEXT));
tableSchema.addColumn("RecoRd2", new TypeDesc(schema));
tableSchema.addColumn("RecoRd3", new TypeDesc(
- new Schema(new Column[]{
+ SchemaFactory.newV1(new Column[]{
new Column("CoL1", CatalogUtil.newSimpleDataType(Type.INT4)),
new Column("RecoRd1", new TypeDesc(schema)),
})
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java
index 5d40656..c151e3b 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java
@@ -115,7 +115,7 @@ public class TestCatalogExceptions {
public void testCreateTableWithWrongUri() throws Exception {
// TODO: currently, wrong uri does not occur any exception.
String tableName = "wrongUri";
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn(CatalogUtil.buildFQName(tableName, "Column"), Type.BLOB);
schema.addColumn(CatalogUtil.buildFQName(tableName, "column"), Type.INT4);
schema.addColumn(CatalogUtil.buildFQName(tableName, "cOlumn"), Type.INT8);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestLinkedMetadataManager.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestLinkedMetadataManager.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestLinkedMetadataManager.java
index a065fa8..d381ebd 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestLinkedMetadataManager.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestLinkedMetadataManager.java
@@ -42,25 +42,25 @@ public class TestLinkedMetadataManager {
static TableDesc TABLE1 = new TableDesc(
"table1",
- new Schema(new Column[]{new Column("c1", Type.INT8)}),
+ SchemaFactory.newV1(new Column[]{new Column("c1", Type.INT8)}),
"TEXT", new KeyValueSet(), URI.create("http://space1/x/table1")
);
static TableDesc TABLE2 = new TableDesc(
"table2",
- new Schema(new Column[]{new Column("c1", Type.INT8)}),
+ SchemaFactory.newV1(new Column[]{new Column("c1", Type.INT8)}),
"TEXT", new KeyValueSet(), URI.create("http://space1/x/table2")
);
static TableDesc TABLE3 = new TableDesc(
"table3",
- new Schema(new Column[]{new Column("c1", Type.INT8)}),
+ SchemaFactory.newV1(new Column[]{new Column("c1", Type.INT8)}),
"TEXT", new KeyValueSet(), URI.create("http://space1/x/table3")
);
static TableDesc TABLE4 = new TableDesc(
"table4",
- new Schema(new Column[]{new Column("c1", Type.INT8)}),
+ SchemaFactory.newV1(new Column[]{new Column("c1", Type.INT8)}),
"TEXT", new KeyValueSet(), URI.create("http://space1/x/table4")
);
@@ -211,7 +211,7 @@ public class TestLinkedMetadataManager {
public void testCreateTable() throws Exception {
TableDesc tb = new TableDesc(
"space1.errortable",
- new Schema(),
+ SchemaFactory.newV1(),
new TableMeta("x", new KeyValueSet()),
URI.create("file:///"));
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java b/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
index 18640ed..3618f1f 100644
--- a/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
+++ b/tajo-client/src/main/java/org/apache/tajo/client/QueryClientImpl.java
@@ -30,6 +30,7 @@ import org.apache.tajo.TajoProtos.QueryState;
import org.apache.tajo.auth.UserRoleInfo;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.client.v2.exception.ClientUnableToConnectException;
import org.apache.tajo.TajoProtos.CodecType;
@@ -374,7 +375,7 @@ public class QueryClientImpl implements QueryClient {
if(response.hasResultSet()) {
SerializedResultSet resultSet = response.getResultSet();
return new TajoMemoryResultSet(queryId,
- new Schema(resultSet.getSchema()),
+ SchemaFactory.newV1(resultSet.getSchema()),
resultSet, getClientSideSessionVars());
} else {
return TajoClientUtil.createNullResultSet(queryId);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-client/src/main/java/org/apache/tajo/client/TajoClientUtil.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/client/TajoClientUtil.java b/tajo-client/src/main/java/org/apache/tajo/client/TajoClientUtil.java
index baafbe8..733bcec 100644
--- a/tajo-client/src/main/java/org/apache/tajo/client/TajoClientUtil.java
+++ b/tajo-client/src/main/java/org/apache/tajo/client/TajoClientUtil.java
@@ -24,6 +24,7 @@ import org.apache.tajo.SessionVars;
import org.apache.tajo.TajoProtos;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.exception.QueryNotFoundException;
import org.apache.tajo.ipc.ClientProtos;
@@ -99,16 +100,16 @@ public class TajoClientUtil {
// select substr('abc', 1, 2)
ClientProtos.SerializedResultSet serializedResultSet = response.getResultSet();
return new TajoMemoryResultSet(new QueryId(response.getQueryId()),
- new Schema(serializedResultSet.getSchema()),
+ SchemaFactory.newV1(serializedResultSet.getSchema()),
serializedResultSet,
client.getClientSideSessionVars());
}
}
public static final ResultSet NULL_RESULT_SET =
- new TajoMemoryResultSet(QueryIdFactory.NULL_QUERY_ID, new Schema(), null, null);
+ new TajoMemoryResultSet(QueryIdFactory.NULL_QUERY_ID, SchemaFactory.newV1(), null, null);
public static TajoMemoryResultSet createNullResultSet(QueryId queryId) {
- return new TajoMemoryResultSet(queryId, new Schema(), null, null);
+ return new TajoMemoryResultSet(queryId, SchemaFactory.newV1(), null, null);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java b/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
index 9fba40a..6e7092b 100644
--- a/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
+++ b/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoMetaDataResultSet.java
@@ -19,6 +19,7 @@
package org.apache.tajo.jdbc;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.storage.Tuple;
@@ -35,7 +36,7 @@ public class TajoMetaDataResultSet extends TajoResultSetBase {
}
public TajoMetaDataResultSet(List<String> columns, List<Type> types, List<MetaDataTuple> values) {
- super(null, new Schema(), null);
+ super(null, SchemaFactory.newV1(), null);
int index = 0;
if(columns != null) {
for(String columnName: columns) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-cluster-tests/src/test/java/org/apache/tajo/BackendTestingUtil.java
----------------------------------------------------------------------
diff --git a/tajo-cluster-tests/src/test/java/org/apache/tajo/BackendTestingUtil.java b/tajo-cluster-tests/src/test/java/org/apache/tajo/BackendTestingUtil.java
index 3bfd34d..062db47 100644
--- a/tajo-cluster-tests/src/test/java/org/apache/tajo/BackendTestingUtil.java
+++ b/tajo-cluster-tests/src/test/java/org/apache/tajo/BackendTestingUtil.java
@@ -22,6 +22,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;
@@ -35,7 +36,7 @@ public class BackendTestingUtil {
public final static TableMeta mockupMeta;
static {
- mockupSchema = new Schema();
+ mockupSchema = SchemaFactory.newV1();
mockupSchema.addColumn("deptname", Type.TEXT);
mockupSchema.addColumn("score", Type.INT4);
mockupMeta = CatalogUtil.newTableMeta("TEXT");
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-common/src/main/java/org/apache/tajo/json/CommonGsonHelper.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/json/CommonGsonHelper.java b/tajo-common/src/main/java/org/apache/tajo/json/CommonGsonHelper.java
index 1dd1459..d838b6a 100644
--- a/tajo-common/src/main/java/org/apache/tajo/json/CommonGsonHelper.java
+++ b/tajo-common/src/main/java/org/apache/tajo/json/CommonGsonHelper.java
@@ -37,8 +37,8 @@ public class CommonGsonHelper {
private CommonGsonHelper() {
}
- private static Map<Type, GsonSerDerAdapter> registerAdapters() {
- Map<Type, GsonSerDerAdapter> adapters = new HashMap<>();
+ private static Map<Type, GsonSerDerAdapter<?>> registerAdapters() {
+ Map<Type, GsonSerDerAdapter<?>> adapters = new HashMap<>();
adapters.put(Datum.class, new DatumAdapter());
return adapters;
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-common/src/main/java/org/apache/tajo/json/GsonHelper.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/json/GsonHelper.java b/tajo-common/src/main/java/org/apache/tajo/json/GsonHelper.java
index 8c6d891..eb73c89 100644
--- a/tajo-common/src/main/java/org/apache/tajo/json/GsonHelper.java
+++ b/tajo-common/src/main/java/org/apache/tajo/json/GsonHelper.java
@@ -27,14 +27,14 @@ public class GsonHelper {
private final GsonBuilder builder;
private final Gson gson;
- public GsonHelper(Map<Type, GsonSerDerAdapter> adapters) {
+ public GsonHelper(Map<Type, GsonSerDerAdapter<?>> adapters) {
builder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
registerAdapters(builder, adapters);
gson = builder.create();
}
- public static void registerAdapters(GsonBuilder builder, Map<Type, GsonSerDerAdapter> adapters) {
- for (Map.Entry<Type, GsonSerDerAdapter> entry : adapters.entrySet()) {
+ public static void registerAdapters(GsonBuilder builder, Map<Type, GsonSerDerAdapter<?>> adapters) {
+ for (Map.Entry<Type, GsonSerDerAdapter<?>> entry : adapters.entrySet()) {
try {
builder.registerTypeAdapter(entry.getKey(), entry.getValue());
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestDDLBuilder.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestDDLBuilder.java b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestDDLBuilder.java
index ec92884..51a017e 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestDDLBuilder.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestDDLBuilder.java
@@ -37,7 +37,7 @@ public class TestDDLBuilder {
private static final PartitionMethodDesc partitionMethod1;
static {
- schema1 = new Schema();
+ schema1 = SchemaFactory.newV1();
schema1.addColumn("name", TajoDataTypes.Type.BLOB);
schema1.addColumn("addr", TajoDataTypes.Type.TEXT);
@@ -45,7 +45,7 @@ public class TestDDLBuilder {
meta1.putProperty(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
meta1.putProperty(StorageConstants.COMPRESSION_CODEC, GzipCodec.class.getName());
- Schema expressionSchema = new Schema();
+ Schema expressionSchema = SchemaFactory.newV1();
expressionSchema.addColumn("key", TajoDataTypes.Type.INT4);
expressionSchema.addColumn("key2", TajoDataTypes.Type.TEXT);
partitionMethod1 = new PartitionMethodDesc(
@@ -67,14 +67,14 @@ public class TestDDLBuilder {
@Test
public void testBuildDDLQuotedTableName() throws Exception {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("name", TajoDataTypes.Type.BLOB);
schema2.addColumn("addr", TajoDataTypes.Type.TEXT);
schema2.addColumn("FirstName", TajoDataTypes.Type.TEXT);
schema2.addColumn("LastName", TajoDataTypes.Type.TEXT);
schema2.addColumn("with", TajoDataTypes.Type.TEXT);
- Schema expressionSchema2 = new Schema();
+ Schema expressionSchema2 = SchemaFactory.newV1();
expressionSchema2.addColumn("BirthYear", TajoDataTypes.Type.INT4);
PartitionMethodDesc partitionMethod2 = new PartitionMethodDesc(
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/client/TestCatalogAdminClientExceptions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/client/TestCatalogAdminClientExceptions.java b/tajo-core-tests/src/test/java/org/apache/tajo/client/TestCatalogAdminClientExceptions.java
index 78fb45a..6abc3fb 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/client/TestCatalogAdminClientExceptions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/client/TestCatalogAdminClientExceptions.java
@@ -23,6 +23,7 @@ import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.TpchTestBase;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.catalog.TableMeta;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.exception.*;
@@ -67,20 +68,20 @@ public class TestCatalogAdminClientExceptions extends QueryTestCaseBase {
@Test(expected = UnavailableTableLocationException.class)
public final void testCreateExternalTableUnavailableLocation() throws TajoException {
- client.createExternalTable("table128237", new Schema(), URI.create("/tajo/test1bcd"),
+ client.createExternalTable("table128237", SchemaFactory.newV1(), URI.create("/tajo/test1bcd"),
new TableMeta("TEXT", new KeyValueSet()));
}
@Test(expected = DuplicateTableException.class)
public final void testCreateExternalTableDuplicated() throws TajoException {
- client.createExternalTable("default.lineitem", new Schema(), URI.create("/"),
+ client.createExternalTable("default.lineitem", SchemaFactory.newV1(), URI.create("/"),
new TableMeta("TEXT", new KeyValueSet()));
}
@Test(expected = InsufficientPrivilegeException.class)
public final void testCreateExternalTableInsufficientPrivilege() throws TajoException {
Path p = TajoConf.getWarehouseDir(conf);
- client.createExternalTable("information_schema.table1237891", new Schema(), p.toUri(),
+ client.createExternalTable("information_schema.table1237891", SchemaFactory.newV1(), p.toUri(),
new TableMeta("TEXT", new KeyValueSet()));
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/codegen/TestEvalCodeGenerator.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/codegen/TestEvalCodeGenerator.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/codegen/TestEvalCodeGenerator.java
index 68104e7..cdb86a1 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/codegen/TestEvalCodeGenerator.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/codegen/TestEvalCodeGenerator.java
@@ -21,6 +21,7 @@ package org.apache.tajo.engine.codegen;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.engine.eval.ExprTestBase;
@@ -30,7 +31,7 @@ import org.junit.Test;
public class TestEvalCodeGenerator extends ExprTestBase {
private static Schema schema;
static {
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -65,7 +66,7 @@ public class TestEvalCodeGenerator extends ExprTestBase {
@Test
public void testNullHandling() throws TajoException {
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -105,7 +106,7 @@ public class TestEvalCodeGenerator extends ExprTestBase {
@Test
public void testComparison() throws TajoException {
- Schema inetSchema = new Schema();
+ Schema inetSchema = SchemaFactory.newV1();
inetSchema.addColumn("addr1", TajoDataTypes.Type.INET4);
inetSchema.addColumn("addr2", TajoDataTypes.Type.INET4);
@@ -161,7 +162,7 @@ public class TestEvalCodeGenerator extends ExprTestBase {
@Test
public void testBetweenAsymmetric() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.INT4);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
testEval(schema, "table1", "0,", "select col1 between 1 and 3 from table1", new String[]{"f"});
@@ -195,7 +196,7 @@ public class TestEvalCodeGenerator extends ExprTestBase {
@Test
public void testBetweenSymmetric() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.INT4);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
testEval(schema, "table1", "0,", "select col1 between symmetric 1 and 3 from table1", new String[]{"f"});
@@ -230,7 +231,7 @@ public class TestEvalCodeGenerator extends ExprTestBase {
@Test
public void testUnary() throws TajoException {
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -302,7 +303,7 @@ public class TestEvalCodeGenerator extends ExprTestBase {
testSimpleEval("select length('123456') as col1 ", new String[]{"6"});
testEval(schema, "table1", "0,1,2,3,4.5,6.5", "select 'abc' || 'bbc'", new String [] {"abcbbc"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.TEXT);
schema.addColumn("col2", TajoDataTypes.Type.TEXT);
testEval(schema, "table1", " trim, abc", "select ltrim(col1) || ltrim(col2) from table1",
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTree.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTree.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTree.java
index 9116635..0b33626 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTree.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTree.java
@@ -21,6 +21,7 @@ package org.apache.tajo.engine.eval;
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;
import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.datum.Datum;
@@ -42,7 +43,7 @@ public class TestEvalTree extends ExprTestBase {
FieldEval e2 = new FieldEval("table1.score", CatalogUtil.newSimpleDataType(INT4)); // it indicates
assertCloneEqual(e2);
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("table1.id", INT4);
schema1.addColumn("table1.score", INT4);
@@ -395,7 +396,7 @@ public class TestEvalTree extends ExprTestBase {
assertEquals(caseWhenEval.bind(null, null).eval(null).asInt4(), 1);
}
- Schema schema = new Schema(new Column[]{new Column("test", TajoDataTypes.Type.INT4)});
+ Schema schema = SchemaFactory.newV1(new Column[]{new Column("test", TajoDataTypes.Type.INT4)});
Tuple tuple = new VTuple(new Datum[]{DatumFactory.createText("aaa")});
RegexPredicateEval regexEval = new RegexPredicateEval(false, new FieldEval("test",
CatalogUtil.newSimpleDataType(TajoDataTypes.Type.INT4)), new ConstEval(DatumFactory.createText("a*")), false);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
index 6a659be..9192235 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
@@ -97,7 +97,7 @@ public class TestEvalTreeUtil {
catalog.createTablespace(DEFAULT_TABLESPACE_NAME, "hdfs://localhost:1234/warehouse");
catalog.createDatabase(TajoConstants.DEFAULT_DATABASE_NAME, DEFAULT_TABLESPACE_NAME);
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("name", TajoDataTypes.Type.TEXT);
schema.addColumn("score", TajoDataTypes.Type.INT4);
schema.addColumn("age", TajoDataTypes.Type.INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestPredicates.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestPredicates.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestPredicates.java
index 3a2de5b..c3cd0a0 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestPredicates.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestPredicates.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.eval;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.exception.TajoException;
import org.junit.Test;
@@ -86,7 +87,7 @@ public class TestPredicates extends ExprTestBase {
testSimpleEval("select (not (1 > null)) is null;", new String[] {"t"});
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -112,7 +113,7 @@ public class TestPredicates extends ExprTestBase {
public void testComparisonEqual() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -125,7 +126,7 @@ public class TestPredicates extends ExprTestBase {
testEval(schema, "t1", "0,1,2,3,4.1,5.1,cmp,asm,", "SELECT col6 = 'cmp' from t1", new String [] {"t"});
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -142,7 +143,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testComparisonNotEqual() throws TajoException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -159,7 +160,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testComparisonLessThan() throws TajoException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -176,7 +177,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testComparisonLessThanEqual() throws TajoException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -193,7 +194,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testComparisonGreaterThan() throws TajoException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -210,7 +211,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testComparisonGreaterThanEqual() throws TajoException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
schema1.addColumn("col3", INT4);
@@ -231,7 +232,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testBetween() throws TajoException {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", TEXT);
schema2.addColumn("col2", TEXT);
schema2.addColumn("col3", TEXT);
@@ -255,7 +256,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testBetween2() throws TajoException { // for TAJO-249
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("date_a", INT4);
schema3.addColumn("date_b", INT4);
schema3.addColumn("date_c", INT4);
@@ -294,7 +295,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testInPredicateWithConstant() throws TajoException {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", TEXT);
schema2.addColumn("col2", TEXT);
schema2.addColumn("col3", TEXT);
@@ -319,7 +320,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testInPredicateWithSimpleExprs() throws TajoException {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", TEXT);
schema2.addColumn("col2", INT4);
schema2.addColumn("col3", TEXT);
@@ -343,7 +344,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testIsNullPredicate() throws TajoException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("col1", INT4);
schema1.addColumn("col2", INT4);
testEval(schema1, "table1", "123,", "select col1 is null, col2 is null as a from table1",
@@ -354,7 +355,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testIsNullPredicateWithFunction() throws TajoException {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", TEXT);
schema2.addColumn("col2", TEXT);
testEval(schema2, "table1", "_123,", "select ltrim(col1, '_') is null, upper(col2) is null as a from table1",
@@ -393,7 +394,7 @@ public class TestPredicates extends ExprTestBase {
@Test
public void testBooleanTestOnTable() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", BOOLEAN);
schema.addColumn("col2", BOOLEAN);
testEval(schema, "table1", "t,f", "select col1 is true, col2 is false from table1", new String [] {"t", "t"});
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
index fe51aa4..2db826b 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
@@ -21,6 +21,7 @@ package org.apache.tajo.engine.eval;
import org.apache.tajo.SessionVars;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.exception.UndefinedFunctionException;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.datum.DatumFactory;
@@ -39,7 +40,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testQuotedIdentifiers() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("컬럼1", TEXT);
schema.addColumn("컬럼2", TEXT);
testEval(schema, "테이블1", "123,234", "select \"컬럼1\"::float, cast (\"컬럼2\" as float4) as a from \"테이블1\"",
@@ -93,7 +94,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testExplicitCast() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", INT1);
schema.addColumn("col1", INT2);
schema.addColumn("col2", INT4);
@@ -173,7 +174,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testImplicitCastForInt1() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -275,7 +276,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testImplicitCastForInt2() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -377,7 +378,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testImplicitCastForInt4() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -480,7 +481,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testImplicitCastForInt8() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -587,7 +588,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testImplicitCastForFloat4() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -706,7 +707,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testImplicitCastForFloat8() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -826,7 +827,7 @@ public class TestSQLExpression extends ExprTestBase {
@Test
public void testSigned() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col0", TajoDataTypes.Type.INT1);
schema.addColumn("col1", TajoDataTypes.Type.INT2);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
@@ -870,7 +871,7 @@ public class TestSQLExpression extends ExprTestBase {
queryContext.put(SessionVars.TIMEZONE, "GMT-6");
TimeZone tz = TimeZone.getTimeZone("GMT-6");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
@@ -902,7 +903,7 @@ public class TestSQLExpression extends ExprTestBase {
testSimpleEval("select true", new String[] {"t"});
testSimpleEval("select false", new String[]{"f"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
testEval(schema, "table1", "123,234", "select col1, col2 from table1 where true", new String[]{"123", "234"});
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java
index 72fdd6f..ae2de77 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestBuiltinFunctions.java
@@ -23,6 +23,7 @@ import org.apache.tajo.QueryTestCaseBase;
import org.apache.tajo.TajoConstants;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.storage.StorageConstants;
import org.apache.tajo.util.KeyValueSet;
@@ -53,7 +54,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value", TajoDataTypes.Type.INT8);
String[] data = new String[]{ "1|-111", "2|\\N", "3|-333" };
@@ -79,7 +80,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("value", TajoDataTypes.Type.DATE);
String[] data = new String[]{ "2014-01-02", "2014-12-01", "2015-01-01", "1999-08-09", "2000-03-01" };
TajoTestingCluster.createTable("testbuiltin11", schema, tableOptions, data, 1);
@@ -103,7 +104,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("value", TajoDataTypes.Type.DATE);
String[] data = new String[]{ "2014-01-02", "2014-12-01", "\\N", "\\N", "2000-03-01" };
TajoTestingCluster.createTable("testbuiltin11", schema, tableOptions, data, 1);
@@ -127,7 +128,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("value", TajoDataTypes.Type.TIME);
String[] data = new String[]{ "11:11:11", "23:12:50", "00:00:01", "09:59:59", "12:13:14" };
TajoTestingCluster.createTable("testbuiltin11", schema, tableOptions, data, 1);
@@ -151,7 +152,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("value", TajoDataTypes.Type.TIME);
String[] data = new String[]{ "11:11:11", "\\N", "\\N", "09:59:59", "12:13:14" };
TajoTestingCluster.createTable("testbuiltin11", schema, tableOptions, data, 1);
@@ -175,7 +176,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("value", TajoDataTypes.Type.TIMESTAMP);
String[] data = new String[]{ "1999-01-01 11:11:11", "2015-01-01 23:12:50", "2016-12-24 00:00:01",
"1977-05-04 09:59:59", "2002-11-21 12:13:14" };
@@ -200,7 +201,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("value", TajoDataTypes.Type.TIMESTAMP);
String[] data = new String[]{ "1999-01-01 11:11:11", "2015-01-01 23:12:50", "\\N",
"\\N", "2002-11-21 12:13:14" };
@@ -232,7 +233,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value", TajoDataTypes.Type.INT8);
String[] data = new String[]{ "1|111", "2|\\N", "3|333" };
@@ -265,7 +266,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
String[] data = new String[]{ "1|\\N", "2|\\N", "3|\\N" };
@@ -298,7 +299,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("name", TajoDataTypes.Type.TEXT);
String[] data = new String[]{ "1|def", "2|\\N", "3|abc" };
@@ -359,7 +360,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -388,7 +389,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -417,7 +418,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -446,7 +447,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -475,7 +476,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -507,7 +508,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -539,7 +540,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -571,7 +572,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -603,7 +604,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -634,7 +635,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -665,7 +666,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -696,7 +697,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
@@ -757,11 +758,11 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
String[] data = new String[] {"1", "3", "2", "4"};
TajoTestingCluster.createTable("rank_table1", schema, tableOptions, data, 1);
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("refid", TajoDataTypes.Type.INT4);
schema.addColumn("value", TajoDataTypes.Type.TEXT);
data = new String[] {"1|efgh", "2|abcd", "4|erjk", "8|dfef"};
@@ -795,7 +796,7 @@ public class TestBuiltinFunctions extends QueryTestCaseBase {
tableOptions.set(StorageConstants.TEXT_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
tableOptions.set(StorageConstants.TEXT_NULL, "\\\\N");
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("id", TajoDataTypes.Type.INT4);
schema.addColumn("value_int", TajoDataTypes.Type.INT4);
schema.addColumn("value_long", TajoDataTypes.Type.INT8);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestConditionalExpressions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestConditionalExpressions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestConditionalExpressions.java
index 691579c..9a072ef 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestConditionalExpressions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestConditionalExpressions.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.function;
import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.exception.UndefinedFunctionException;
import org.apache.tajo.common.TajoDataTypes;
@@ -32,7 +33,7 @@ import static org.junit.Assert.fail;
public class TestConditionalExpressions extends ExprTestBase {
@Test
public void testCaseWhens1() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.INT1);
schema.addColumn("col2", TajoDataTypes.Type.INT2);
schema.addColumn("col3", TajoDataTypes.Type.INT4);
@@ -59,7 +60,7 @@ public class TestConditionalExpressions extends ExprTestBase {
@Test
public void testCaseWhensWithNullReturn() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.TEXT);
schema.addColumn("col2", TajoDataTypes.Type.TEXT);
@@ -73,7 +74,7 @@ public class TestConditionalExpressions extends ExprTestBase {
@Test
public void testCaseWhensWithCommonExpression() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.INT4);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
schema.addColumn("col3", TajoDataTypes.Type.INT4);
@@ -111,7 +112,7 @@ public class TestConditionalExpressions extends ExprTestBase {
@Test
public void testCaseWhensWithCommonExpressionAndNull() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.INT4);
schema.addColumn("col2", TajoDataTypes.Type.INT4);
schema.addColumn("col3", TajoDataTypes.Type.INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
index 9dd8653..dc9bd25 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
@@ -21,6 +21,7 @@ package org.apache.tajo.engine.function;
import org.apache.tajo.SessionVars;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.datum.DatumFactory;
import org.apache.tajo.datum.TimestampDatum;
import org.apache.tajo.engine.eval.ExprTestBase;
@@ -119,7 +120,7 @@ public class TestDateTimeFunctions extends ExprTestBase {
TimeZone GMT = TimeZone.getTimeZone("GMT");
TimeZone PST = TimeZone.getTimeZone("PST");
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", TIMESTAMP);
testEval(schema2, "table1",
"1970-01-17 10:09:37",
@@ -135,7 +136,7 @@ public class TestDateTimeFunctions extends ExprTestBase {
new String[]{"1970.0", "1.0", "17.0"});
// Currently TIME type can be loaded with INT8 type.
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("col1", TIME);
testEval(schema3, "table1",
"10:09:37.5",
@@ -150,7 +151,7 @@ public class TestDateTimeFunctions extends ExprTestBase {
"select extract(hour from col1), extract(minute from col1), extract(second from col1) from table1;",
new String[]{"18.0", "9.0", "37.5"});
- Schema schema4 = new Schema();
+ Schema schema4 = SchemaFactory.newV1();
schema4.addColumn("col1", DATE);
testEval(schema4, "table1",
"1970-01-17",
@@ -235,7 +236,7 @@ public class TestDateTimeFunctions extends ExprTestBase {
TimeZone GMT = TimeZone.getTimeZone("GMT");
TimeZone PST = TimeZone.getTimeZone("PST");
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", TIMESTAMP);
testEval(schema2, "table1",
@@ -251,7 +252,7 @@ public class TestDateTimeFunctions extends ExprTestBase {
"select date_part('year', col1), date_part('month', col1), date_part('day', col1) from table1;",
new String[]{"1970.0", "1.0", "18.0"});
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("col1", TIME);
testEval(schema3, "table1", "10:09:37.5",
"select date_part('hour', col1), date_part('minute', col1), date_part('second', col1) from table1;",
@@ -263,7 +264,7 @@ public class TestDateTimeFunctions extends ExprTestBase {
"select date_part('hour', col1), date_part('minute', col1), date_part('second', col1) from table1;",
new String[]{"18.0", "9.0", "37.5"});
- Schema schema4 = new Schema();
+ Schema schema4 = SchemaFactory.newV1();
schema4.addColumn("col1", DATE);
testEval(schema4, "table1",
"1970-01-17",
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestMathFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestMathFunctions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestMathFunctions.java
index a43e4d3..1c07388 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestMathFunctions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestMathFunctions.java
@@ -19,6 +19,7 @@
package org.apache.tajo.engine.function;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.engine.eval.ExprTestBase;
import org.apache.tajo.exception.TajoException;
@@ -37,7 +38,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select round(-5.5) as col1 ", new String[]{"-6"});
testSimpleEval("select round(-5.6) as col1 ", new String[]{"-6"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -45,7 +46,7 @@ public class TestMathFunctions extends ExprTestBase {
testEval(schema, "table1", "1.0, 0.2, 0.4", "select round(col1 + col2 + col3) from table1",
new String[]{"2"});
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", INT4);
schema2.addColumn("col2", INT8);
schema2.addColumn("col3", FLOAT4);
@@ -65,7 +66,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select floor(-5.1) as col1 ", new String[]{"-6"});
testSimpleEval("select floor(-5.6) as col1 ", new String[]{"-6"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -84,7 +85,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select ceil(-5.1) as col1 ", new String[]{"-5"});
testSimpleEval("select ceil(-5.6) as col1 ", new String[]{"-5"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -103,7 +104,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select ceiling(-5.1) as col1 ", new String[]{"-5"});
testSimpleEval("select ceiling(-5.6) as col1 ", new String[]{"-5"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -119,7 +120,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select sin(1.2) as col1 ", new String[]{"0.9320390859672263"});
testSimpleEval("select sin(-0.5) as col1 ", new String[]{"-0.479425538604203"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -136,7 +137,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select cos(1.2) as col1 ", new String[]{"0.3623577544766736"});
testSimpleEval("select cos(-0.5) as col1 ", new String[]{"0.8775825618903728"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -152,7 +153,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select tan(0.8) as col1 ", new String[]{"1.0296385570503641"});
testSimpleEval("select tan(-0.5) as col1 ", new String[]{"-0.5463024898437905"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -168,7 +169,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select asin(0.8) as col1 ", new String[]{"0.9272952180016123"});
testSimpleEval("select asin(-0.5) as col1 ", new String[]{"-0.5235987755982989"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -184,7 +185,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select acos(0.8) as col1 ", new String[]{"0.6435011087932843"});
testSimpleEval("select acos(-0.5) as col1 ", new String[]{"2.0943951023931957"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -200,7 +201,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select atan(1.2) as col1 ", new String[]{"0.8760580505981934"});
testSimpleEval("select atan(-0.5) as col1 ", new String[]{"-0.4636476090008061"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -217,7 +218,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select atan2(-0.5, 0.3) as col1 ", new String[]{"-1.0303768265243125"});
testSimpleEval("select atan2(-0.2, -1.3) as col1 ", new String[]{"-2.988943325194528"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -233,7 +234,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select mod(200000000000,2) as col1 ", new String[]{"0"});
testSimpleEval("select mod(2,200000000000) as col1 ", new String[]{"2"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", INT8);
schema.addColumn("col2", INT8);
schema.addColumn("col3", INT8);
@@ -249,7 +250,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select div(200000000000,2) as col1 ", new String[]{"100000000000"});
testSimpleEval("select div(2,200000000000) as col1 ", new String[]{"0"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", INT8);
schema.addColumn("col2", INT8);
schema.addColumn("col3", INT8);
@@ -265,7 +266,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select sign(0.3) as col1 ", new String[]{"1.0"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT4);
schema.addColumn("col3", FLOAT4);
@@ -274,7 +275,7 @@ public class TestMathFunctions extends ExprTestBase {
new String[]{"1.0"});
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", FLOAT8);
schema2.addColumn("col2", FLOAT8);
schema2.addColumn("col3", FLOAT8);
@@ -290,7 +291,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select sqrt(8.0) as col1 ", new String[]{"2.8284271247461903"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT4);
schema.addColumn("col3", FLOAT4);
@@ -299,7 +300,7 @@ public class TestMathFunctions extends ExprTestBase {
new String[]{"1.1401754564651765"});
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", FLOAT8);
schema2.addColumn("col2", FLOAT8);
schema2.addColumn("col3", FLOAT8);
@@ -315,13 +316,13 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select exp(1.2) as col1 ", new String[]{String.valueOf(Math.exp(1.2d))});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
testEval(schema, "table1", "1.123", "select exp(col1) from table1",
new String[]{String.valueOf(Math.exp(1.123f))});
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", FLOAT8);
testEval(schema2, "table1", "1.123", "select exp(col1) from table1",
@@ -338,12 +339,12 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select abs(2.0) as col1 ", new String[]{"2.0"});
testSimpleEval("select abs(-2.0) as col1 ", new String[]{"2.0"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT4);
testEval(schema, "table1", "0.39,-0.39", "select abs(col1), abs(col2) from table1", new String[]{"0.39", "0.39"});
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", FLOAT8);
schema2.addColumn("col2", FLOAT8);
testEval(schema2, "table1", "0.033312347,-0.033312347", "select abs(col1), abs(col2) from table1",
@@ -357,14 +358,14 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select cbrt(8.0) as col1 ", new String[]{"2.0"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT4);
schema.addColumn("col3", FLOAT4);
testEval(schema, "table1", "1.0, 0.2, 0.1", "select cbrt(col1 + col2 + col3) from table1",
new String[]{"1.0913929030771317"});
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("col1", FLOAT8);
schema2.addColumn("col2", FLOAT8);
schema2.addColumn("col3", FLOAT8);
@@ -379,7 +380,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select degrees(2.7) as col1 ", new String[]{String.valueOf(Math.toDegrees(2.7))});
testSimpleEval("select degrees(-0.8) as col1 ", new String[]{String.valueOf(Math.toDegrees(-0.8))});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -400,7 +401,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select pow(null,3.1) as col1 ", new String[]{NullDatum.get().toString()});
testSimpleEval("select pow(20.1,null) as col1 ", new String[]{NullDatum.get().toString()});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", INT4);
@@ -420,7 +421,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select radians(2.7) as col1 ", new String[]{String.valueOf(Math.toRadians(2.7))});
testSimpleEval("select radians(-0.8) as col1 ", new String[]{String.valueOf(Math.toRadians(-0.8))});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT4);
schema.addColumn("col2", FLOAT8);
schema.addColumn("col3", FLOAT8);
@@ -462,7 +463,7 @@ public class TestMathFunctions extends ExprTestBase {
testSimpleEval("select round(1234567890.1234567,3) ", new String[]{"1.234567890123E9"});
testSimpleEval("select round(1234567890.1234567,5) ", new String[]{"1.23456789012346E9"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", FLOAT8);
schema.addColumn("col2", INT4);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestPatternMatchingPredicates.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestPatternMatchingPredicates.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestPatternMatchingPredicates.java
index eb0bd96..0cfbe1c 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestPatternMatchingPredicates.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestPatternMatchingPredicates.java
@@ -19,6 +19,7 @@
package org.apache.tajo.engine.function;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.engine.eval.ExprTestBase;
import org.apache.tajo.exception.TajoException;
@@ -30,7 +31,7 @@ public class TestPatternMatchingPredicates extends ExprTestBase {
@Test
public void testLike() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
// test for null values
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
index 751a243..dd40822 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestStringOperatorsAndFunctions.java
@@ -21,6 +21,7 @@ package org.apache.tajo.engine.function;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.engine.eval.ExprTestBase;
import org.apache.tajo.exception.TajoException;
@@ -40,7 +41,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
@Test
public void testConcatenateOnExpressions() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", INT4);
schema.addColumn("col3", FLOAT8);
@@ -61,7 +62,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
@Test
public void testLTrim() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
@@ -82,7 +83,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
@Test
public void testRTrim() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
@@ -103,7 +104,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
@Test
public void testTrim() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
@@ -131,7 +132,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select regexp_replace('abcdef', null, '--') as col1 ", new String[]{NullDatum.get().toString()});
testSimpleEval("select regexp_replace('abcdef','bc', null) as col1 ", new String[]{NullDatum.get().toString()});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -164,7 +165,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select left('abcdef',-5) as col1 ", new String[]{"a"});
testSimpleEval("select left('abcdef',-6) as col1 ", new String[]{""});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", INT4);
schema.addColumn("col3", TEXT);
@@ -193,7 +194,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select right('abcdef',-5) as col1 ", new String[]{"f"});
testSimpleEval("select right('abcdef',-6) as col1 ", new String[]{""});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", INT4);
schema.addColumn("col3", TEXT);
@@ -210,7 +211,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select reverse('abcdef') as col1 ", new String[]{"fedcba"});
testSimpleEval("select reverse('가') as col1 ", new String[]{"가"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -224,7 +225,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select repeat('가',3) as col1 ", new String[]{"가가가"});
testSimpleEval("select repeat('a',2) as col1 ", new String[]{"aa"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -236,7 +237,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
public void testUpper() throws TajoException {
testSimpleEval("select upper('abcdef') as col1 ", new String[]{"ABCDEF"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -249,7 +250,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
public void testLower() throws TajoException {
testSimpleEval("select lower('ABCdEF') as col1 ", new String[]{"abcdef"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -262,7 +263,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
public void testCharLength() throws TajoException {
testSimpleEval("select char_length('123456') as col1 ", new String[]{"6"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -274,7 +275,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
public void testLength() throws TajoException {
testSimpleEval("select length('123456') as col1 ", new String[]{"6"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -287,7 +288,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select md5('1') as col1 ", new String[]{"c4ca4238a0b923820dcc509a6f75849b"});
testSimpleEval("select md5('tajo') as col1 ", new String[]{"742721b3a79f71a9491681b8e8a7ce85"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -316,7 +317,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select to_hex(1234) as col1 ", new String[]{"4d2"});
testSimpleEval("select to_hex(1023456788888888) as col1 ", new String[]{"3a2d41a583d38"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -330,7 +331,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select to_bin(10) as col1 ", new String[]{"1010"});
testSimpleEval("select to_bin(1234) as col1 ", new String[]{"10011010010"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -344,7 +345,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select octet_length('1') as col1 ", new String[]{"1"});
testSimpleEval("select octet_length('가') as col1 ", new String[]{"3"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -360,7 +361,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select split_part('1386577650.123', '.', 3) is null", new String[]{"t"});
// null handling tests
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -389,7 +390,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select substr('abcdef', -1, 3) as col1 ", new String[]{"a"});
testSimpleEval("select substr('abcdef', -1, 1) as col1 ", new String[]{""});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -432,7 +433,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select locate('abcdef', 'a', -1) as col1 ", new String[]{"0"});
testSimpleEval("select locate('abcdef', 'a', -5) as col1 ", new String[]{"0"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -450,7 +451,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
public void testBitLength() throws TajoException {
testSimpleEval("select bit_length('123456') as col1 ", new String[]{"48"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -466,7 +467,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select strpos('일이삼사오육','삼사') as col1 ", new String[]{"3"});
testSimpleEval("select strpos('일이삼사오육','일이삼') as col1 ", new String[]{"1"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -482,7 +483,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select strposb('일이삼사오육','삼사') as col1 ", new String[]{"7"}); //utf8 1 korean word = 3 chars
testSimpleEval("select strposb('일이삼사오육','삼사일') as col1 ", new String[]{"0"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
schema.addColumn("col3", TEXT);
@@ -500,7 +501,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
public void testAscii() throws TajoException {
testSimpleEval("select ascii('abc') as col1 ", new String[]{"97"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
testEval(schema, "table1", "abc", "select ascii(col1) from table1",
new String[]{"97"});
@@ -516,7 +517,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select chr(50) as col1 ", new String[]{"2"});
testSimpleEval("select chr(64) as col1 ", new String[]{"@"});
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", INT4);
testEval(schema, "table1", "65", "select chr(col1) from table1", new String[]{"A"});
testEval(schema, "table1", "66", "select chr(col1) from table1", new String[]{"B"});
@@ -587,7 +588,7 @@ public class TestStringOperatorsAndFunctions extends ExprTestBase {
testSimpleEval("select find_in_set('딸기','사과,배,옥수수,감자,딸기,수박') as col1 ", new String[]{"5"});
// null test
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TEXT);
schema.addColumn("col2", TEXT);
testEval(schema, "table1", "|crt,c,cr,c,def", "select find_in_set(col1, col2) is null from table1",
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestUserDefinedFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestUserDefinedFunctions.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestUserDefinedFunctions.java
index a179e74..f66c6bb 100644
--- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestUserDefinedFunctions.java
+++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/function/TestUserDefinedFunctions.java
@@ -19,6 +19,7 @@
package org.apache.tajo.engine.function;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.engine.eval.ExprTestBase;
import org.apache.tajo.exception.TajoException;
@@ -35,7 +36,7 @@ public class TestUserDefinedFunctions extends ExprTestBase {
@Test
public void testNullHandling2() throws TajoException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", BOOLEAN);
testEval(schema, "table1", "", "select null_test() from table1", new String[]{NullDatum.get().toString()});
[5/5] tajo git commit: TAJO-2099: Implement an Adapter for legacy
Schema.
Posted by hy...@apache.org.
TAJO-2099: Implement an Adapter for legacy Schema.
Closes #981
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/8dad551e
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/8dad551e
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/8dad551e
Branch: refs/heads/master
Commit: 8dad551ec54ee33f40bc355376ebcb4b370a5ada
Parents: 6826358
Author: Hyunsik Choi <hy...@apache.org>
Authored: Mon Mar 28 13:06:51 2016 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Mon Mar 28 13:06:51 2016 +0900
----------------------------------------------------------------------
CHANGES | 2 +
.../org/apache/tajo/catalog/CatalogUtil.java | 2 +-
.../java/org/apache/tajo/catalog/IndexDesc.java | 2 +-
.../java/org/apache/tajo/catalog/Schema.java | 479 ++--------------
.../org/apache/tajo/catalog/SchemaFactory.java | 48 ++
.../org/apache/tajo/catalog/SchemaLegacy.java | 555 +++++++++++++++++++
.../org/apache/tajo/catalog/SchemaUtil.java | 8 +-
.../java/org/apache/tajo/catalog/TableDesc.java | 4 +-
.../tajo/catalog/json/CatalogGsonHelper.java | 8 +-
.../apache/tajo/catalog/json/SchemaAdapter.java | 57 ++
.../catalog/partition/PartitionMethodDesc.java | 3 +-
.../org/apache/tajo/catalog/TestIndexDesc.java | 2 +-
.../org/apache/tajo/catalog/TestSchema.java | 58 +-
.../org/apache/tajo/catalog/TestTableDesc.java | 4 +-
.../org/apache/tajo/catalog/TestTableMeta.java | 8 +-
.../tajo/catalog/store/HiveCatalogStore.java | 6 +-
.../catalog/store/TestHiveCatalogStore.java | 24 +-
.../tajo/catalog/store/AbstractDBStore.java | 6 +-
.../apache/tajo/catalog/CatalogTestingUtil.java | 4 +-
.../org/apache/tajo/catalog/TestCatalog.java | 42 +-
.../TestCatalogAgainstCaseSensitivity.java | 6 +-
.../tajo/catalog/TestCatalogExceptions.java | 2 +-
.../tajo/catalog/TestLinkedMetadataManager.java | 10 +-
.../org/apache/tajo/client/QueryClientImpl.java | 3 +-
.../org/apache/tajo/client/TajoClientUtil.java | 7 +-
.../apache/tajo/jdbc/TajoMetaDataResultSet.java | 3 +-
.../org/apache/tajo/BackendTestingUtil.java | 3 +-
.../org/apache/tajo/json/CommonGsonHelper.java | 4 +-
.../java/org/apache/tajo/json/GsonHelper.java | 6 +-
.../apache/tajo/cli/tools/TestDDLBuilder.java | 8 +-
.../TestCatalogAdminClientExceptions.java | 7 +-
.../engine/codegen/TestEvalCodeGenerator.java | 15 +-
.../apache/tajo/engine/eval/TestEvalTree.java | 5 +-
.../tajo/engine/eval/TestEvalTreeUtil.java | 2 +-
.../apache/tajo/engine/eval/TestPredicates.java | 31 +-
.../tajo/engine/eval/TestSQLExpression.java | 23 +-
.../engine/function/TestBuiltinFunctions.java | 51 +-
.../function/TestConditionalExpressions.java | 9 +-
.../engine/function/TestDateTimeFunctions.java | 13 +-
.../tajo/engine/function/TestMathFunctions.java | 57 +-
.../function/TestPatternMatchingPredicates.java | 3 +-
.../TestStringOperatorsAndFunctions.java | 53 +-
.../function/TestUserDefinedFunctions.java | 3 +-
.../engine/planner/TestJoinOrderAlgorithm.java | 8 +-
.../engine/planner/TestLogicalOptimizer.java | 6 +-
.../tajo/engine/planner/TestLogicalPlanner.java | 14 +-
.../tajo/engine/planner/TestPlannerUtil.java | 18 +-
.../planner/TestUniformRangePartition.java | 73 +--
.../planner/physical/TestExternalSortExec.java | 2 +-
.../physical/TestFullOuterHashJoinExec.java | 8 +-
.../physical/TestFullOuterMergeJoinExec.java | 10 +-
.../planner/physical/TestHashAntiJoinExec.java | 4 +-
.../planner/physical/TestHashJoinExec.java | 4 +-
.../planner/physical/TestHashSemiJoinExec.java | 4 +-
.../physical/TestLeftOuterHashJoinExec.java | 8 +-
.../planner/physical/TestMergeJoinExec.java | 4 +-
.../planner/physical/TestPhysicalPlanner.java | 4 +-
.../physical/TestProgressExternalSortExec.java | 2 +-
.../physical/TestRightOuterHashJoinExec.java | 6 +-
.../physical/TestRightOuterMergeJoinExec.java | 10 +-
.../engine/planner/physical/TestSortExec.java | 4 +-
.../planner/physical/TestSortIntersectExec.java | 4 +-
.../planner/physical/TestTupleSorter.java | 3 +-
.../planner/physical/TestUnSafeTuple.java | 3 +-
.../tajo/engine/query/TestGroupByQuery.java | 9 +-
.../tajo/engine/query/TestHBaseTable.java | 19 +-
.../apache/tajo/engine/query/TestJoinQuery.java | 17 +-
.../tajo/engine/query/TestNullValues.java | 11 +-
.../tajo/engine/query/TestSelectQuery.java | 3 +-
.../apache/tajo/engine/query/TestSortQuery.java | 17 +-
.../tajo/engine/query/TestTablePartitions.java | 7 +-
.../tajo/engine/query/TestWindowQuery.java | 11 +-
.../apache/tajo/engine/util/TestTupleUtil.java | 9 +-
.../org/apache/tajo/storage/TestRowFile.java | 3 +-
.../tajo/ws/rs/resources/RestTestUtils.java | 64 ---
.../ws/rs/resources/TestClusterResource.java | 3 +-
.../ws/rs/resources/TestDatabasesResource.java | 3 +-
.../ws/rs/resources/TestFunctionsResource.java | 3 +-
.../tajo/ws/rs/resources/TestQueryResource.java | 3 +-
.../rs/resources/TestQueryResultResource.java | 3 +-
.../ws/rs/resources/TestSessionsResource.java | 3 +-
.../ws/rs/resources/TestTablesResource.java | 3 +-
.../java/org/apache/tajo/benchmark/TPCH.java | 23 +-
.../apache/tajo/engine/json/CoreGsonHelper.java | 24 +-
.../tajo/engine/planner/global/DataChannel.java | 3 +-
.../global/builder/DistinctGroupbyBuilder.java | 3 +-
.../planner/physical/BSTIndexScanExec.java | 5 +-
.../planner/physical/ColPartitionStoreExec.java | 7 +-
.../engine/planner/physical/SeqScanExec.java | 2 +-
.../engine/planner/physical/WindowAggExec.java | 5 +-
.../tajo/master/TajoMasterClientService.java | 2 +-
.../exec/ExplainPlanPreprocessorForTest.java | 3 +-
.../apache/tajo/master/exec/QueryExecutor.java | 2 +-
.../apache/tajo/querymaster/Repartitioner.java | 2 +-
.../org/apache/tajo/ws/rs/TajoRestService.java | 43 +-
.../apache/tajo/jdbc/TajoDatabaseMetaData.java | 2 +-
.../org/apache/tajo/jdbc/TestResultSet.java | 4 +-
.../org/apache/tajo/plan/LogicalPlanner.java | 14 +-
.../org/apache/tajo/plan/expr/EvalTreeUtil.java | 3 +-
.../function/python/PythonScriptEngine.java | 16 +-
.../tajo/plan/logical/CreateTableNode.java | 3 +-
.../apache/tajo/plan/logical/InsertNode.java | 7 +-
.../org/apache/tajo/plan/logical/ScanNode.java | 7 +-
.../plan/rewrite/SelfDescSchemaBuildPhase.java | 4 +-
.../tajo/plan/rewrite/rules/IndexScanInfo.java | 3 +-
.../rewrite/rules/PartitionedTableRewriter.java | 2 +-
.../plan/serder/LogicalNodeDeserializer.java | 11 +-
.../apache/tajo/plan/serder/PlanGsonHelper.java | 7 +-
.../org/apache/tajo/plan/util/PlannerUtil.java | 4 +-
.../org/apache/tajo/plan/TestLogicalNode.java | 3 +-
.../tajo/storage/BaseTupleComparator.java | 3 +-
.../org/apache/tajo/storage/MergeScanner.java | 3 +-
.../org/apache/tajo/storage/TupleRange.java | 3 +-
.../org/apache/tajo/storage/TestLazyTuple.java | 5 +-
.../tajo/storage/TestTupleComparator.java | 7 +-
.../tajo/storage/hbase/TestColumnMapping.java | 3 +-
.../apache/tajo/storage/index/bst/BSTIndex.java | 3 +-
.../tajo/storage/parquet/ParquetScanner.java | 3 +-
.../storage/parquet/TajoSchemaConverter.java | 3 +-
.../storage/thirdparty/orc/OrcRecordReader.java | 3 +-
.../tajo/storage/TestCompressionStorages.java | 3 +-
.../tajo/storage/TestDelimitedTextFile.java | 3 +-
.../apache/tajo/storage/TestFileSystems.java | 3 +-
.../apache/tajo/storage/TestFileTablespace.java | 9 +-
.../org/apache/tajo/storage/TestLineReader.java | 9 +-
.../apache/tajo/storage/TestMergeScanner.java | 5 +-
.../org/apache/tajo/storage/TestStorages.java | 51 +-
.../apache/tajo/storage/index/TestBSTIndex.java | 24 +-
.../index/TestSingleCSVFileBSTIndex.java | 6 +-
.../apache/tajo/storage/json/TestJsonSerDe.java | 5 +-
.../tajo/storage/parquet/TestReadWrite.java | 3 +-
.../storage/parquet/TestSchemaConverter.java | 5 +-
.../tajo/storage/raw/TestDirectRawFile.java | 7 +-
.../storage/jdbc/JdbcMetadataProviderBase.java | 2 +-
134 files changed, 1302 insertions(+), 1119 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 3c6bcaf..971d8d8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,8 @@ Release 0.12.0 - unreleased
IMPROVEMENT
+ TAJO-2099: Implement an Adapter for the legacy Schema. (hyunsik)
+
TAJO-2091: Error or progress update should use stderr instead of stdout.
(hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
index 94e8157..76990f2 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
@@ -351,7 +351,7 @@ public class CatalogUtil {
* @return
*/
public static SchemaProto getQualfiedSchema(String tableName, SchemaProto schema) {
- Schema restored = new Schema(schema);
+ Schema restored = SchemaFactory.newV1(schema);
restored.setQualifier(tableName);
return restored.getProto();
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
index 9f64913..ad038e8 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/IndexDesc.java
@@ -58,7 +58,7 @@ public class IndexDesc implements ProtoObject<IndexDescProto>, Cloneable {
proto.getIndexName(), new URI(proto.getIndexPath()),
keySortSpecs,
proto.getIndexMethod(), proto.getIsUnique(), proto.getIsClustered(),
- new Schema(proto.getTargetRelationSchema()));
+ SchemaFactory.newV1(proto.getTargetRelationSchema()));
} catch (URISyntaxException e) {
e.printStackTrace();
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java
index 9574f12..1b4c1eb 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java
@@ -18,113 +18,16 @@
package org.apache.tajo.catalog;
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableList;
-import com.google.gson.annotations.Expose;
-import org.apache.tajo.catalog.SchemaUtil.ColumnVisitor;
-import org.apache.tajo.catalog.json.CatalogGsonHelper;
-import org.apache.tajo.catalog.proto.CatalogProtos.ColumnProto;
import org.apache.tajo.catalog.proto.CatalogProtos.SchemaProto;
import org.apache.tajo.common.ProtoObject;
import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.common.TajoDataTypes.Type;
-import org.apache.tajo.exception.DuplicateColumnException;
-import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.json.GsonObject;
-import org.apache.tajo.util.StringUtils;
-import java.util.*;
+import java.util.Collection;
+import java.util.List;
-public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
-
- @Expose protected List<Column> fields = null;
- @Expose protected Map<String, Integer> fieldsByQualifiedName = null;
- @Expose protected Map<String, List<Integer>> fieldsByName = null;
-
- public Schema() {
- init();
- }
-
- /**
- * This Schema constructor restores a serialized schema into in-memory Schema structure.
- * A serialized schema is an ordered list in depth-first order over a nested schema.
- * This constructor transforms the list into a tree-like structure.
- *
- * @param proto
- */
- public Schema(SchemaProto proto) {
- init();
-
- List<Column> toBeAdded = new ArrayList<>();
- for (int i = 0; i < proto.getFieldsCount(); i++) {
- deserializeColumn(toBeAdded, proto.getFieldsList(), i);
- }
-
- for (Column c : toBeAdded) {
- addColumn(c);
- }
- }
-
- /**
- * This method transforms a list of ColumnProtos into a schema tree.
- * It assumes that <code>protos</code> contains a list of ColumnProtos in the depth-first order.
- *
- * @param tobeAdded
- * @param protos
- * @param serializedColumnIndex
- */
- private static void deserializeColumn(List<Column> tobeAdded, List<ColumnProto> protos, int serializedColumnIndex) {
- ColumnProto columnProto = protos.get(serializedColumnIndex);
- if (columnProto.getDataType().getType() == Type.RECORD) {
-
- // Get the number of child fields
- int childNum = columnProto.getDataType().getNumNestedFields();
- // where is start index of nested fields?
- int childStartIndex = tobeAdded.size() - childNum;
- // Extract nested fields
- List<Column> nestedColumns = new ArrayList<>(tobeAdded.subList(childStartIndex, childStartIndex + childNum));
-
- // Remove nested fields from the the current level
- for (int i = 0; i < childNum; i++) {
- tobeAdded.remove(tobeAdded.size() - 1);
- }
-
- // Add the nested fields to the list as a single record column
- tobeAdded.add(new Column(columnProto.getName(), new TypeDesc(new Schema(nestedColumns))));
- } else {
- tobeAdded.add(new Column(protos.get(serializedColumnIndex)));
- }
- }
-
- public Schema(Schema schema) {
- this();
-
- this.fields.addAll(schema.fields);
- this.fieldsByQualifiedName.putAll(schema.fieldsByQualifiedName);
- this.fieldsByName.putAll(schema.fieldsByName);
- }
-
- public Schema(Column [] columns) {
- init();
-
- for(Column c : columns) {
- addColumn(c);
- }
- }
-
- public Schema(Iterable<Column> columns) {
- init();
-
- for(Column c : columns) {
- addColumn(c);
- }
- }
-
- private void init() {
- this.fields = new ArrayList<>();
- this.fieldsByQualifiedName = new HashMap<>();
- this.fieldsByName = new HashMap<>();
- }
+public interface Schema extends ProtoObject<SchemaProto>, Cloneable, GsonObject {
/**
* Set a qualifier to this schema.
@@ -132,45 +35,15 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
*
* @param qualifier The qualifier
*/
- public void setQualifier(String qualifier) {
- // only change root fields, and must keep each nested field simple name
- List<Column> columns = getRootColumns();
-
- fields.clear();
- fieldsByQualifiedName.clear();
- fieldsByName.clear();
-
- Column newColumn;
- for (Column c : columns) {
- newColumn = new Column(qualifier + "." + c.getSimpleName(), c.typeDesc);
- addColumn(newColumn);
- }
- }
+ void setQualifier(String qualifier);
- public int size() {
- return this.fields.size();
- }
+ int size();
- public Column getColumn(int id) {
- return fields.get(id);
- }
+ Column getColumn(int id);
- public Column getColumn(Column column) {
- int idx = getIndex(column);
- return idx >= 0 ? fields.get(idx) : null;
- }
+ Column getColumn(Column column);
- public int getIndex(Column column) {
- if (!contains(column)) {
- return -1;
- }
-
- if (column.hasQualifier()) {
- return fieldsByQualifiedName.get(column.getQualifiedName());
- } else {
- return fieldsByName.get(column.getSimpleName()).get(0);
- }
- }
+ int getIndex(Column column);
/**
* Get a column by a given name.
@@ -178,224 +51,35 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
* @param name The column name to be found.
* @return The column matched to a given column name.
*/
- public Column getColumn(String name) {
-
- if (NestedPathUtil.isPath(name)) {
-
- // TODO - to be refactored
- if (fieldsByQualifiedName.containsKey(name)) {
- Column flattenColumn = fields.get(fieldsByQualifiedName.get(name));
- if (flattenColumn != null) {
- return flattenColumn;
- }
- }
-
- String [] paths = name.split(NestedPathUtil.PATH_DELIMITER);
- Column column = getColumn(paths[0]);
- if (column == null) {
- return null;
- }
- Column actualColumn = NestedPathUtil.lookupPath(column, paths);
+ Column getColumn(String name);
- Column columnPath = new Column(
- column.getQualifiedName() + NestedPathUtil.makePath(paths, 1),
- actualColumn.typeDesc);
+ int getColumnId(String name);
- return columnPath;
- } else {
- String[] parts = name.split("\\.");
- // Some of the string can includes database name and table name and column name.
- // For example, it can be 'default.table1.id'.
- // Therefore, spilt string array length can be 3.
- if (parts.length >= 2) {
- return getColumnByQName(name);
- } else {
- return getColumnByName(name);
- }
- }
- }
-
- /**
- * Find a column by a qualified name (e.g., table1.col1).
- *
- * @param qualifiedName The qualified name
- * @return The Column matched to a given qualified name
- */
- private Column getColumnByQName(String qualifiedName) {
- Integer cid = fieldsByQualifiedName.get(qualifiedName);
- return cid != null ? fields.get(cid) : null;
- }
-
- /**
- * Find a column by a name (e.g., col1).
- * The same name columns can be exist in a schema. For example, table1.col1 and table2.col1 coexist in a schema.
- * In this case, it will throw {@link java.lang.RuntimeException}. But, it occurs rarely because all column names
- * except for alias have a qualified form.
- *
- * @param columnName The column name without qualifier
- * @return The Column matched to a given name.
- */
- private Column getColumnByName(String columnName) {
- String normalized = columnName;
- List<Integer> list = fieldsByName.get(normalized);
-
- if (list == null || list.size() == 0) {
- return null;
- }
-
- if (list.size() == 1) {
- return fields.get(list.get(0));
- } else {
- throw throwAmbiguousFieldException(list);
- }
- }
-
- private RuntimeException throwAmbiguousFieldException(Collection<Integer> idList) {
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (Integer id : idList) {
- if (first) {
- first = false;
- } else {
- sb.append(", ");
- }
- sb.append(fields.get(id));
- }
- throw new RuntimeException("Ambiguous Column Name Access: " + sb.toString());
- }
-
- public int getColumnId(String name) {
- // if the same column exists, immediately return that column.
- if (fieldsByQualifiedName.containsKey(name)) {
- return fieldsByQualifiedName.get(name);
- }
-
- // The following is some workaround code.
- List<Integer> list = fieldsByName.get(name);
- if (list == null) {
- return -1;
- } else if (list.size() == 1) {
- return fieldsByName.get(name).get(0);
- } else if (list.size() == 0) {
- return -1;
- } else { // if list.size > 2
- throw throwAmbiguousFieldException(list);
- }
- }
-
- public int getColumnIdByName(String colName) {
- for (Column col : fields) {
- if (col.getSimpleName().equals(colName)) {
- String qualifiedName = col.getQualifiedName();
- return fieldsByQualifiedName.get(qualifiedName);
- }
- }
- return -1;
- }
+ int getColumnIdByName(String colName);
/**
* Get root columns, meaning all columns except for nested fields.
*
* @return A list of root columns
*/
- public List<Column> getRootColumns() {
- return ImmutableList.copyOf(fields);
- }
+ List<Column> getRootColumns();
/**
* Get all columns, including all nested fields
*
* @return A list of all columns
*/
- public List<Column> getAllColumns() {
- final List<Column> columnList = new ArrayList<>();
-
- SchemaUtil.visitSchema(this, new ColumnVisitor() {
- @Override
- public void visit(int depth, List<String> path, Column column) {
- if (path.size() > 0) {
- String parentPath = StringUtils.join(path, NestedPathUtil.PATH_DELIMITER);
- String currentPath = parentPath + NestedPathUtil.PATH_DELIMITER + column.getSimpleName();
- columnList.add(new Column(currentPath, column.getTypeDesc()));
- } else {
- columnList.add(column);
- }
- }
- });
-
- return columnList;
- }
-
- public boolean contains(String name) {
- // TODO - It's a hack
- if (NestedPathUtil.isPath(name)) {
- return (getColumn(name) != null);
- }
-
- if (fieldsByQualifiedName.containsKey(name)) {
- return true;
- }
- if (fieldsByName.containsKey(name)) {
- if (fieldsByName.get(name).size() > 1) {
- throw new RuntimeException("Ambiguous Column name");
- }
- return true;
- }
+ List<Column> getAllColumns();
- return false;
- }
+ boolean contains(String name);
- public boolean contains(Column column) {
- // TODO - It's a hack
- if (NestedPathUtil.isPath(column.getQualifiedName())) {
- return (getColumn(column.getQualifiedName()) != null);
- }
-
- if (column.hasQualifier()) {
- return fieldsByQualifiedName.containsKey(column.getQualifiedName());
- } else {
- if (fieldsByName.containsKey(column.getSimpleName())) {
- int num = fieldsByName.get(column.getSimpleName()).size();
- if (num == 0) {
- throw new IllegalStateException("No such column name: " + column.getSimpleName());
- }
- if (num > 1) {
- throw new RuntimeException("Ambiguous column name: " + column.getSimpleName());
- }
- return true;
- }
- return false;
- }
- }
+ boolean contains(Column column);
- public boolean containsByQualifiedName(String qualifiedName) {
- return fieldsByQualifiedName.containsKey(qualifiedName);
- }
-
- public boolean containsByName(String colName) {
- return fieldsByName.containsKey(colName);
- }
+ boolean containsByQualifiedName(String qualifiedName);
- public boolean containsAll(Collection<Column> columns) {
- boolean containFlag = true;
+ boolean containsByName(String colName);
- for (Column c :columns) {
- if (NestedPathUtil.isPath(c.getSimpleName())) {
- if (contains(c.getQualifiedName())) {
- containFlag &= true;
- } else {
- String[] paths = c.getQualifiedName().split("/");
- boolean existRootPath = contains(paths[0]);
- boolean existLeafPath = getColumn(c.getSimpleName()) != null;
- containFlag &= existRootPath && existLeafPath;
- }
- } else {
- containFlag &= fields.contains(c);
- }
- }
-
- return containFlag;
- }
+ boolean containsAll(Collection<Column> columns);
/**
* Return TRUE if any column in <code>columns</code> is included in this schema.
@@ -404,133 +88,34 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
* @return true if any column in <code>columns</code> is included in this schema.
* Otherwise, false.
*/
- public boolean containsAny(Collection<Column> columns) {
- for (Column column : columns) {
- if (contains(column)) {
- return true;
- }
- }
- return false;
- }
-
- public synchronized Schema addColumn(String name, TypeDesc typeDesc) {
- String normalized = name;
- if(fieldsByQualifiedName.containsKey(normalized)) {
- throw new TajoRuntimeException(new DuplicateColumnException(normalized));
- }
+ boolean containsAny(Collection<Column> columns);
- Column newCol = new Column(normalized, typeDesc);
- fields.add(newCol);
- fieldsByQualifiedName.put(newCol.getQualifiedName(), fields.size() - 1);
- List<Integer> inputList = new ArrayList<>();
- inputList.add(fields.size() - 1);
- fieldsByName.put(newCol.getSimpleName(), inputList);
+ Schema addColumn(String name, TypeDesc typeDesc);
- return this;
- }
+ Schema addColumn(String name, Type type);
- public synchronized Schema addColumn(String name, Type type) {
- return addColumn(name, CatalogUtil.newSimpleDataType(type));
- }
+ Schema addColumn(String name, Type type, int length);
- public synchronized Schema addColumn(String name, Type type, int length) {
- return addColumn(name, CatalogUtil.newDataTypeWithLen(type, length));
- }
-
- public synchronized Schema addColumn(String name, DataType dataType) {
- addColumn(name, new TypeDesc(dataType));
-
- return this;
- }
+ Schema addColumn(String name, DataType dataType);
- public synchronized void addColumn(Column column) {
- addColumn(column.getQualifiedName(), column.typeDesc);
- }
+ void addColumn(Column column);
- public synchronized void addColumns(Schema schema) {
- for(Column column : schema.getRootColumns()) {
- addColumn(column);
- }
- }
+ void addColumns(Schema schema);
- @Override
- public int hashCode() {
- return Objects.hashCode(fields, fieldsByQualifiedName, fieldsByName);
- }
@Override
- public boolean equals(Object o) {
- if (o instanceof Schema) {
- Schema other = (Schema) o;
- return getProto().equals(other.getProto());
- }
- return false;
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- Schema schema = (Schema) super.clone();
- schema.init();
+ boolean equals(Object o);
- for(Column column: this.fields) {
- schema.addColumn(column);
- }
- return schema;
- }
+ Object clone() throws CloneNotSupportedException;
@Override
- public SchemaProto getProto() {
- SchemaProto.Builder builder = SchemaProto.newBuilder();
- SchemaProtoBuilder recursiveBuilder = new SchemaProtoBuilder(builder);
- SchemaUtil.visitSchema(this, recursiveBuilder);
- return builder.build();
- }
-
- private static class SchemaProtoBuilder implements ColumnVisitor {
- private SchemaProto.Builder builder;
- public SchemaProtoBuilder(SchemaProto.Builder builder) {
- this.builder = builder;
- }
-
- @Override
- public void visit(int depth, List<String> path, Column column) {
-
- if (column.getDataType().getType() == Type.RECORD) {
- DataType.Builder updatedType = DataType.newBuilder(column.getDataType());
- updatedType.setNumNestedFields(column.typeDesc.nestedRecordSchema.size());
+ SchemaProto getProto();
- ColumnProto.Builder updatedColumn = ColumnProto.newBuilder(column.getProto());
- updatedColumn.setDataType(updatedType);
-
- builder.addFields(updatedColumn.build());
- } else {
- builder.addFields(column.getProto());
- }
- }
- }
-
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("{(").append(size()).append(") ");
- int i = 0;
- for(Column col : fields) {
- sb.append(col);
- if (i < fields.size() - 1) {
- sb.append(", ");
- }
- i++;
- }
- sb.append("}");
-
- return sb.toString();
- }
+ @Override
+ String toString();
@Override
- public String toJson() {
- return CatalogGsonHelper.toJson(this, Schema.class);
- }
+ String toJson();
- public Column [] toArray() {
- return this.fields.toArray(new Column[this.fields.size()]);
- }
+ Column [] toArray();
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaFactory.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaFactory.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaFactory.java
new file mode 100644
index 0000000..fb6910b
--- /dev/null
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaFactory.java
@@ -0,0 +1,48 @@
+/*
+ * 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 org.apache.tajo.catalog;
+
+import org.apache.tajo.catalog.proto.CatalogProtos;
+import org.apache.tajo.exception.TajoInternalError;
+
+public class SchemaFactory {
+ public static Schema newV1() {
+ return new SchemaLegacy();
+ }
+
+ public static Schema newV1(CatalogProtos.SchemaProto proto) {
+ return new SchemaLegacy(proto);
+ }
+
+ public static Schema newV1(Schema schema) {
+ try {
+ return (Schema) schema.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new TajoInternalError(e);
+ }
+ }
+
+ public static Schema newV1(Column [] columns) {
+ return new SchemaLegacy(columns);
+ }
+
+ public static Schema newV1(Iterable<Column> columns) {
+ return new SchemaLegacy(columns);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaLegacy.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaLegacy.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaLegacy.java
new file mode 100644
index 0000000..f23d519
--- /dev/null
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaLegacy.java
@@ -0,0 +1,555 @@
+/*
+ * 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 org.apache.tajo.catalog;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
+import com.google.gson.annotations.Expose;
+import org.apache.tajo.catalog.SchemaUtil.ColumnVisitor;
+import org.apache.tajo.catalog.json.CatalogGsonHelper;
+import org.apache.tajo.catalog.proto.CatalogProtos.ColumnProto;
+import org.apache.tajo.catalog.proto.CatalogProtos.SchemaProto;
+import org.apache.tajo.common.ProtoObject;
+import org.apache.tajo.common.TajoDataTypes.DataType;
+import org.apache.tajo.common.TajoDataTypes.Type;
+import org.apache.tajo.exception.DuplicateColumnException;
+import org.apache.tajo.exception.TajoRuntimeException;
+import org.apache.tajo.json.GsonObject;
+import org.apache.tajo.util.StringUtils;
+
+import java.util.*;
+
+public class SchemaLegacy implements Schema, ProtoObject<SchemaProto>, Cloneable, GsonObject {
+
+ @Expose protected List<Column> fields = null;
+ @Expose protected Map<String, Integer> fieldsByQualifiedName = null;
+ @Expose protected Map<String, List<Integer>> fieldsByName = null;
+
+ public SchemaLegacy() {
+ init();
+ }
+
+ /**
+ * This Schema constructor restores a serialized schema into in-memory Schema structure.
+ * A serialized schema is an ordered list in depth-first order over a nested schema.
+ * This constructor transforms the list into a tree-like structure.
+ *
+ * @param proto
+ */
+ public SchemaLegacy(SchemaProto proto) {
+ init();
+
+ List<Column> toBeAdded = new ArrayList<>();
+ for (int i = 0; i < proto.getFieldsCount(); i++) {
+ deserializeColumn(toBeAdded, proto.getFieldsList(), i);
+ }
+
+ for (Column c : toBeAdded) {
+ addColumn(c);
+ }
+ }
+
+ /**
+ * This method transforms a list of ColumnProtos into a schema tree.
+ * It assumes that <code>protos</code> contains a list of ColumnProtos in the depth-first order.
+ *
+ * @param tobeAdded
+ * @param protos
+ * @param serializedColumnIndex
+ */
+ private static void deserializeColumn(List<Column> tobeAdded, List<ColumnProto> protos, int serializedColumnIndex) {
+ ColumnProto columnProto = protos.get(serializedColumnIndex);
+ if (columnProto.getDataType().getType() == Type.RECORD) {
+
+ // Get the number of child fields
+ int childNum = columnProto.getDataType().getNumNestedFields();
+ // where is start index of nested fields?
+ int childStartIndex = tobeAdded.size() - childNum;
+ // Extract nested fields
+ List<Column> nestedColumns = new ArrayList<>(tobeAdded.subList(childStartIndex, childStartIndex + childNum));
+
+ // Remove nested fields from the the current level
+ for (int i = 0; i < childNum; i++) {
+ tobeAdded.remove(tobeAdded.size() - 1);
+ }
+
+ // Add the nested fields to the list as a single record column
+ tobeAdded.add(new Column(columnProto.getName(), new TypeDesc(new SchemaLegacy(nestedColumns))));
+ } else {
+ tobeAdded.add(new Column(protos.get(serializedColumnIndex)));
+ }
+ }
+
+ public SchemaLegacy(Schema schema) {
+ new SchemaLegacy(schema.getRootColumns());
+ }
+
+ public SchemaLegacy(Column [] columns) {
+ init();
+
+ for(Column c : columns) {
+ addColumn(c);
+ }
+ }
+
+ public SchemaLegacy(Iterable<Column> columns) {
+ init();
+
+ for(Column c : columns) {
+ addColumn(c);
+ }
+ }
+
+ private void init() {
+ this.fields = new ArrayList<>();
+ this.fieldsByQualifiedName = new HashMap<>();
+ this.fieldsByName = new HashMap<>();
+ }
+
+ /**
+ * Set a qualifier to this schema.
+ * This changes the qualifier of all columns except for not-qualified columns.
+ *
+ * @param qualifier The qualifier
+ */
+ @Override
+ public void setQualifier(String qualifier) {
+ // only change root fields, and must keep each nested field simple name
+ List<Column> columns = getRootColumns();
+
+ fields.clear();
+ fieldsByQualifiedName.clear();
+ fieldsByName.clear();
+
+ Column newColumn;
+ for (Column c : columns) {
+ newColumn = new Column(qualifier + "." + c.getSimpleName(), c.typeDesc);
+ addColumn(newColumn);
+ }
+ }
+
+ @Override
+ public int size() {
+ return this.fields.size();
+ }
+
+ @Override
+ public Column getColumn(int id) {
+ return fields.get(id);
+ }
+
+ @Override
+ public Column getColumn(Column column) {
+ int idx = getIndex(column);
+ return idx >= 0 ? fields.get(idx) : null;
+ }
+
+ public int getIndex(Column column) {
+ if (!contains(column)) {
+ return -1;
+ }
+
+ if (column.hasQualifier()) {
+ return fieldsByQualifiedName.get(column.getQualifiedName());
+ } else {
+ return fieldsByName.get(column.getSimpleName()).get(0);
+ }
+ }
+
+ /**
+ * Get a column by a given name.
+ *
+ * @param name The column name to be found.
+ * @return The column matched to a given column name.
+ */
+ @Override
+ public Column getColumn(String name) {
+
+ if (NestedPathUtil.isPath(name)) {
+
+ // TODO - to be refactored
+ if (fieldsByQualifiedName.containsKey(name)) {
+ Column flattenColumn = fields.get(fieldsByQualifiedName.get(name));
+ if (flattenColumn != null) {
+ return flattenColumn;
+ }
+ }
+
+ String [] paths = name.split(NestedPathUtil.PATH_DELIMITER);
+ Column column = getColumn(paths[0]);
+ if (column == null) {
+ return null;
+ }
+ Column actualColumn = NestedPathUtil.lookupPath(column, paths);
+
+ Column columnPath = new Column(
+ column.getQualifiedName() + NestedPathUtil.makePath(paths, 1),
+ actualColumn.typeDesc);
+
+ return columnPath;
+ } else {
+ String[] parts = name.split("\\.");
+ // Some of the string can includes database name and table name and column name.
+ // For example, it can be 'default.table1.id'.
+ // Therefore, spilt string array length can be 3.
+ if (parts.length >= 2) {
+ return getColumnByQName(name);
+ } else {
+ return getColumnByName(name);
+ }
+ }
+ }
+
+ /**
+ * Find a column by a qualified name (e.g., table1.col1).
+ *
+ * @param qualifiedName The qualified name
+ * @return The Column matched to a given qualified name
+ */
+ private Column getColumnByQName(String qualifiedName) {
+ Integer cid = fieldsByQualifiedName.get(qualifiedName);
+ return cid != null ? fields.get(cid) : null;
+ }
+
+ /**
+ * Find a column by a name (e.g., col1).
+ * The same name columns can be exist in a schema. For example, table1.col1 and table2.col1 coexist in a schema.
+ * In this case, it will throw {@link RuntimeException}. But, it occurs rarely because all column names
+ * except for alias have a qualified form.
+ *
+ * @param columnName The column name without qualifier
+ * @return The Column matched to a given name.
+ */
+ private Column getColumnByName(String columnName) {
+ String normalized = columnName;
+ List<Integer> list = fieldsByName.get(normalized);
+
+ if (list == null || list.size() == 0) {
+ return null;
+ }
+
+ if (list.size() == 1) {
+ return fields.get(list.get(0));
+ } else {
+ throw throwAmbiguousFieldException(list);
+ }
+ }
+
+ private RuntimeException throwAmbiguousFieldException(Collection<Integer> idList) {
+ StringBuilder sb = new StringBuilder();
+ boolean first = true;
+ for (Integer id : idList) {
+ if (first) {
+ first = false;
+ } else {
+ sb.append(", ");
+ }
+ sb.append(fields.get(id));
+ }
+ throw new RuntimeException("Ambiguous Column Name Access: " + sb.toString());
+ }
+
+ @Override
+ public int getColumnId(String name) {
+ // if the same column exists, immediately return that column.
+ if (fieldsByQualifiedName.containsKey(name)) {
+ return fieldsByQualifiedName.get(name);
+ }
+
+ // The following is some workaround code.
+ List<Integer> list = fieldsByName.get(name);
+ if (list == null) {
+ return -1;
+ } else if (list.size() == 1) {
+ return fieldsByName.get(name).get(0);
+ } else if (list.size() == 0) {
+ return -1;
+ } else { // if list.size > 2
+ throw throwAmbiguousFieldException(list);
+ }
+ }
+
+ @Override
+ public int getColumnIdByName(String colName) {
+ for (Column col : fields) {
+ if (col.getSimpleName().equals(colName)) {
+ String qualifiedName = col.getQualifiedName();
+ return fieldsByQualifiedName.get(qualifiedName);
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Get root columns, meaning all columns except for nested fields.
+ *
+ * @return A list of root columns
+ */
+ @Override
+ public List<Column> getRootColumns() {
+ return ImmutableList.copyOf(fields);
+ }
+
+ /**
+ * Get all columns, including all nested fields
+ *
+ * @return A list of all columns
+ */
+ @Override
+ public List<Column> getAllColumns() {
+ final List<Column> columnList = new ArrayList<>();
+
+ SchemaUtil.visitSchema(this, new ColumnVisitor() {
+ @Override
+ public void visit(int depth, List<String> path, Column column) {
+ if (path.size() > 0) {
+ String parentPath = StringUtils.join(path, NestedPathUtil.PATH_DELIMITER);
+ String currentPath = parentPath + NestedPathUtil.PATH_DELIMITER + column.getSimpleName();
+ columnList.add(new Column(currentPath, column.getTypeDesc()));
+ } else {
+ columnList.add(column);
+ }
+ }
+ });
+
+ return columnList;
+ }
+
+ @Override
+ public boolean contains(String name) {
+ // TODO - It's a hack
+ if (NestedPathUtil.isPath(name)) {
+ return (getColumn(name) != null);
+ }
+
+ if (fieldsByQualifiedName.containsKey(name)) {
+ return true;
+ }
+ if (fieldsByName.containsKey(name)) {
+ if (fieldsByName.get(name).size() > 1) {
+ throw new RuntimeException("Ambiguous Column name");
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public boolean contains(Column column) {
+ // TODO - It's a hack
+ if (NestedPathUtil.isPath(column.getQualifiedName())) {
+ return (getColumn(column.getQualifiedName()) != null);
+ }
+
+ if (column.hasQualifier()) {
+ return fieldsByQualifiedName.containsKey(column.getQualifiedName());
+ } else {
+ if (fieldsByName.containsKey(column.getSimpleName())) {
+ int num = fieldsByName.get(column.getSimpleName()).size();
+ if (num == 0) {
+ throw new IllegalStateException("No such column name: " + column.getSimpleName());
+ }
+ if (num > 1) {
+ throw new RuntimeException("Ambiguous column name: " + column.getSimpleName());
+ }
+ return true;
+ }
+ return false;
+ }
+ }
+
+ @Override
+ public boolean containsByQualifiedName(String qualifiedName) {
+ return fieldsByQualifiedName.containsKey(qualifiedName);
+ }
+
+ @Override
+ public boolean containsByName(String colName) {
+ return fieldsByName.containsKey(colName);
+ }
+
+ @Override
+ public boolean containsAll(Collection<Column> columns) {
+ boolean containFlag = true;
+
+ for (Column c :columns) {
+ if (NestedPathUtil.isPath(c.getSimpleName())) {
+ if (contains(c.getQualifiedName())) {
+ containFlag &= true;
+ } else {
+ String[] paths = c.getQualifiedName().split("/");
+ boolean existRootPath = contains(paths[0]);
+ boolean existLeafPath = getColumn(c.getSimpleName()) != null;
+ containFlag &= existRootPath && existLeafPath;
+ }
+ } else {
+ containFlag &= fields.contains(c);
+ }
+ }
+
+ return containFlag;
+ }
+
+ /**
+ * Return TRUE if any column in <code>columns</code> is included in this schema.
+ *
+ * @param columns Columns to be checked
+ * @return true if any column in <code>columns</code> is included in this schema.
+ * Otherwise, false.
+ */
+ @Override
+ public boolean containsAny(Collection<Column> columns) {
+ for (Column column : columns) {
+ if (contains(column)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public synchronized SchemaLegacy addColumn(String name, TypeDesc typeDesc) {
+ String normalized = name;
+ if(fieldsByQualifiedName.containsKey(normalized)) {
+ throw new TajoRuntimeException(new DuplicateColumnException(normalized));
+ }
+
+ Column newCol = new Column(normalized, typeDesc);
+ fields.add(newCol);
+ fieldsByQualifiedName.put(newCol.getQualifiedName(), fields.size() - 1);
+ List<Integer> inputList = new ArrayList<>();
+ inputList.add(fields.size() - 1);
+ fieldsByName.put(newCol.getSimpleName(), inputList);
+
+ return this;
+ }
+
+ @Override
+ public synchronized SchemaLegacy addColumn(String name, Type type) {
+ return addColumn(name, CatalogUtil.newSimpleDataType(type));
+ }
+
+ @Override
+ public synchronized SchemaLegacy addColumn(String name, Type type, int length) {
+ return addColumn(name, CatalogUtil.newDataTypeWithLen(type, length));
+ }
+
+ @Override
+ public synchronized SchemaLegacy addColumn(String name, DataType dataType) {
+ addColumn(name, new TypeDesc(dataType));
+
+ return this;
+ }
+
+ @Override
+ public synchronized void addColumn(Column column) {
+ addColumn(column.getQualifiedName(), column.typeDesc);
+ }
+
+ @Override
+ public synchronized void addColumns(Schema schema) {
+ for(Column column : schema.getRootColumns()) {
+ addColumn(column);
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(fields, fieldsByQualifiedName, fieldsByName);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof SchemaLegacy) {
+ SchemaLegacy other = (SchemaLegacy) o;
+ return getProto().equals(other.getProto());
+ }
+ return false;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ SchemaLegacy schema = (SchemaLegacy) super.clone();
+ schema.init();
+
+ for(Column column: this.fields) {
+ schema.addColumn(column);
+ }
+ return schema;
+ }
+
+ @Override
+ public SchemaProto getProto() {
+ SchemaProto.Builder builder = SchemaProto.newBuilder();
+ SchemaProtoBuilder recursiveBuilder = new SchemaProtoBuilder(builder);
+ SchemaUtil.visitSchema(this, recursiveBuilder);
+ return builder.build();
+ }
+
+ private static class SchemaProtoBuilder implements ColumnVisitor {
+ private SchemaProto.Builder builder;
+ public SchemaProtoBuilder(SchemaProto.Builder builder) {
+ this.builder = builder;
+ }
+
+ @Override
+ public void visit(int depth, List<String> path, Column column) {
+
+ if (column.getDataType().getType() == Type.RECORD) {
+ DataType.Builder updatedType = DataType.newBuilder(column.getDataType());
+ updatedType.setNumNestedFields(column.typeDesc.nestedRecordSchema.size());
+
+ ColumnProto.Builder updatedColumn = ColumnProto.newBuilder(column.getProto());
+ updatedColumn.setDataType(updatedType);
+
+ builder.addFields(updatedColumn.build());
+ } else {
+ builder.addFields(column.getProto());
+ }
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("{(").append(size()).append(") ");
+ int i = 0;
+ for(Column col : fields) {
+ sb.append(col);
+ if (i < fields.size() - 1) {
+ sb.append(", ");
+ }
+ i++;
+ }
+ sb.append("}");
+
+ return sb.toString();
+ }
+
+ @Override
+ public String toJson() {
+ return CatalogGsonHelper.toJson(this, SchemaLegacy.class);
+ }
+
+ @Override
+ public Column [] toArray() {
+ return this.fields.toArray(new Column[this.fields.size()]);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java
index 0ffe584..0c62ae5 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java
@@ -42,7 +42,7 @@ public class SchemaUtil {
// The essential solution would be https://issues.apache.org/jira/browse/TAJO-895.
static int tmpColumnSeq = 0;
public static Schema merge(Schema left, Schema right) {
- Schema merged = new Schema();
+ Schema merged = SchemaFactory.newV1();
for(Column col : left.getRootColumns()) {
if (!merged.containsByQualifiedName(col.getQualifiedName())) {
merged.addColumn(col);
@@ -67,7 +67,7 @@ public class SchemaUtil {
* Get common columns to be used as join keys of natural joins.
*/
public static Schema getNaturalJoinColumns(Schema left, Schema right) {
- Schema common = new Schema();
+ Schema common = SchemaFactory.newV1();
for (Column outer : left.getRootColumns()) {
if (!common.containsByName(outer.getSimpleName()) && right.containsByName(outer.getSimpleName())) {
common.addColumn(new Column(outer.getSimpleName(), outer.getDataType()));
@@ -78,7 +78,7 @@ public class SchemaUtil {
}
public static Schema getQualifiedLogicalSchema(TableDesc tableDesc, String tableName) {
- Schema logicalSchema = new Schema(tableDesc.getLogicalSchema());
+ Schema logicalSchema = SchemaFactory.newV1(tableDesc.getLogicalSchema());
if (tableName != null) {
logicalSchema.setQualifier(tableName);
}
@@ -208,7 +208,7 @@ public class SchemaUtil {
*/
public static int estimateRowByteSizeWithSchema(Schema schema) {
int size = 0;
- for (Column column : schema.fields) {
+ for (Column column : schema.getAllColumns()) {
size += getColByteSize(column);
}
return size;
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
index 3cdc00b..392a83d 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
@@ -70,7 +70,7 @@ public class TableDesc implements ProtoObject<TableDescProto>, GsonObject, Clone
}
public TableDesc(TableDescProto proto) {
- this(proto.getTableName(), proto.hasSchema() ? new Schema(proto.getSchema()) : null,
+ this(proto.getTableName(), proto.hasSchema() ? SchemaFactory.newV1(proto.getSchema()) : null,
new TableMeta(proto.getMeta()), proto.hasPath() ? URI.create(proto.getPath()) : null, proto.getIsExternal());
if(proto.hasStats()) {
this.stats = new TableStats(proto.getStats());
@@ -122,7 +122,7 @@ public class TableDesc implements ProtoObject<TableDescProto>, GsonObject, Clone
public Schema getLogicalSchema() {
if (hasPartition()) {
- Schema logicalSchema = new Schema(schema);
+ Schema logicalSchema = SchemaFactory.newV1(schema);
logicalSchema.addColumns(getPartitionMethod().getExpressionSchema());
logicalSchema.setQualifier(tableName);
return logicalSchema;
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/CatalogGsonHelper.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/CatalogGsonHelper.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/CatalogGsonHelper.java
index ec439f0..c145ecd 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/CatalogGsonHelper.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/CatalogGsonHelper.java
@@ -21,10 +21,11 @@ package org.apache.tajo.catalog.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.function.Function;
import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.datum.Datum;
+import org.apache.tajo.function.Function;
import org.apache.tajo.json.*;
import java.lang.reflect.Type;
@@ -38,14 +39,15 @@ public class CatalogGsonHelper {
private CatalogGsonHelper() {
}
- private static Map<Type, GsonSerDerAdapter> registerAdapters() {
- Map<Type, GsonSerDerAdapter> adapters = new HashMap<>();
+ private static Map<Type, GsonSerDerAdapter<?>> registerAdapters() {
+ Map<Type, GsonSerDerAdapter<?>> adapters = new HashMap<>();
adapters.put(Class.class, new ClassNameSerializer());
adapters.put(Path.class, new PathSerializer());
adapters.put(TableMeta.class, new TableMetaAdapter());
adapters.put(Function.class, new FunctionAdapter());
adapters.put(Datum.class, new DatumAdapter());
adapters.put(DataType.class, new DataTypeAdapter());
+ adapters.put(Schema.class, new SchemaAdapter());
return adapters;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/SchemaAdapter.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/SchemaAdapter.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/SchemaAdapter.java
new file mode 100644
index 0000000..f7c2392
--- /dev/null
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/json/SchemaAdapter.java
@@ -0,0 +1,57 @@
+/*
+ * 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 org.apache.tajo.catalog.json;
+
+import com.google.gson.*;
+import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaLegacy;
+import org.apache.tajo.exception.TajoInternalError;
+import org.apache.tajo.exception.TajoRuntimeException;
+import org.apache.tajo.exception.UnsupportedException;
+import org.apache.tajo.function.Function;
+import org.apache.tajo.json.CommonGsonHelper;
+import org.apache.tajo.json.GsonSerDerAdapter;
+
+import java.lang.reflect.Type;
+
+public class SchemaAdapter implements GsonSerDerAdapter<Schema> {
+
+ @Override
+ public JsonElement serialize(Schema src, Type typeOfSrc,
+ JsonSerializationContext context) {
+ JsonObject jsonObj = new JsonObject();
+ jsonObj.addProperty("version", src instanceof SchemaLegacy ? "1" : "2");
+ JsonElement jsonElem = context.serialize(src);
+ jsonObj.add("body", jsonElem);
+ return jsonObj;
+ }
+
+ @Override
+ public Schema deserialize(JsonElement json, Type typeOfT,
+ JsonDeserializationContext context) throws JsonParseException {
+ JsonObject jsonObject = json.getAsJsonObject();
+ int version = CommonGsonHelper.getOrDie(jsonObject, "version").getAsJsonPrimitive().getAsInt();
+
+ if (version == 1) {
+ return context.deserialize(CommonGsonHelper.getOrDie(jsonObject, "body"), SchemaLegacy.class);
+ } else {
+ throw new TajoInternalError("Schema version 2 is not supported yet");
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java
index 721a7a0..d3f10ad 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/partition/PartitionMethodDesc.java
@@ -23,6 +23,7 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.SchemaFactory;
import org.apache.tajo.catalog.json.CatalogGsonHelper;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.common.ProtoObject;
@@ -59,7 +60,7 @@ public class PartitionMethodDesc implements ProtoObject<CatalogProtos.PartitionM
this(proto.getTableIdentifier().getDatabaseName(),
proto.getTableIdentifier().getTableName(),
proto.getPartitionType(), proto.getExpression(),
- new Schema(proto.getExpressionSchema()));
+ SchemaFactory.newV1(proto.getExpressionSchema()));
}
public String getTableName() {
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java
index 7561dfd..0b7516e 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestIndexDesc.java
@@ -40,7 +40,7 @@ public class TestIndexDesc {
@BeforeClass
public static void setUp() throws Exception {
- relationSchema = new Schema(new Column[]{new Column("id", Type.INT4),
+ relationSchema = SchemaFactory.newV1(new Column[]{new Column("id", Type.INT4),
new Column("score", Type.FLOAT8), new Column("name", Type.TEXT)});
SortSpec[] colSpecs1 = new SortSpec[1];
colSpecs1[0] = new SortSpec(new Column("id", Type.INT4), true, true);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestSchema.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestSchema.java b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestSchema.java
index c4092f0..6235945 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestSchema.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestSchema.java
@@ -40,10 +40,10 @@ public class TestSchema {
static {
// simple nested schema
- nestedSchema1 = new Schema();
+ nestedSchema1 = SchemaFactory.newV1();
nestedSchema1.addColumn("s1", Type.INT8);
- Schema nestedRecordSchema = new Schema();
+ Schema nestedRecordSchema = SchemaFactory.newV1();
nestedRecordSchema.addColumn("s2", Type.FLOAT4);
nestedRecordSchema.addColumn("s3", Type.TEXT);
@@ -63,10 +63,10 @@ public class TestSchema {
// |- s8
// |- s6
// |- s7
- nestedSchema2 = new Schema();
+ nestedSchema2 = SchemaFactory.newV1();
nestedSchema2.addColumn("s1", Type.INT8);
- Schema nestedRecordSchema1 = new Schema();
+ Schema nestedRecordSchema1 = SchemaFactory.newV1();
nestedRecordSchema1.addColumn("s2", Type.FLOAT4);
nestedRecordSchema1.addColumn("s3", Type.TEXT);
@@ -75,7 +75,7 @@ public class TestSchema {
nestedSchema2.addColumn("s5", Type.FLOAT8);
- Schema nestedRecordSchema2 = new Schema();
+ Schema nestedRecordSchema2 = SchemaFactory.newV1();
nestedRecordSchema2.addColumn("s6", Type.FLOAT4);
nestedRecordSchema2.addColumn("s7", Type.TEXT);
@@ -95,18 +95,18 @@ public class TestSchema {
// |- s8
// |- s9
- nestedSchema3 = new Schema();
+ nestedSchema3 = SchemaFactory.newV1();
nestedSchema3.addColumn("s1", Type.INT8);
nestedSchema3.addColumn("s2", Type.INT8);
- Schema s5 = new Schema();
+ Schema s5 = SchemaFactory.newV1();
s5.addColumn("s6", Type.INT8);
- Schema s7 = new Schema();
+ Schema s7 = SchemaFactory.newV1();
s7.addColumn("s5", new TypeDesc(s5));
- Schema s3 = new Schema();
+ Schema s3 = SchemaFactory.newV1();
s3.addColumn("s4", Type.INT8);
s3.addColumn("s7", new TypeDesc(s7));
s3.addColumn("s8", Type.INT8);
@@ -117,7 +117,7 @@ public class TestSchema {
@Before
public void setUp() throws Exception {
- schema = new Schema();
+ schema = SchemaFactory.newV1();
col1 = new Column("name", Type.TEXT);
schema.addColumn(col1);
col2 = new Column("age", Type.INT4);
@@ -128,14 +128,14 @@ public class TestSchema {
@Test
public final void testSchemaSchema() {
- Schema schema2 = new Schema(schema);
+ Schema schema2 = SchemaFactory.newV1(schema);
assertEquals(schema, schema2);
}
@Test
public final void testSchemaSchemaProto() {
- Schema schema2 = new Schema(schema.getProto());
+ Schema schema2 = SchemaFactory.newV1(schema.getProto());
assertEquals(schema, schema2);
}
@@ -149,7 +149,7 @@ public class TestSchema {
@Test
public final void testAddField() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
assertFalse(schema.containsByQualifiedName("studentId"));
schema.addColumn("studentId", Type.INT4);
assertTrue(schema.containsByQualifiedName("studentId"));
@@ -157,7 +157,7 @@ public class TestSchema {
@Test
public final void testEqualsObject() {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("name", Type.TEXT);
schema2.addColumn("age", Type.INT4);
schema2.addColumn("addr", Type.TEXT);
@@ -176,11 +176,11 @@ public class TestSchema {
@Test
public final void testClone() throws CloneNotSupportedException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("abc", Type.FLOAT8);
schema.addColumn("bbc", Type.FLOAT8);
- Schema schema2 = new Schema(schema.getProto());
+ Schema schema2 = SchemaFactory.newV1(schema.getProto());
assertEquals(schema.getProto(), schema2.getProto());
assertEquals(schema.getColumn(0), schema2.getColumn(0));
assertEquals(schema.size(), schema2.size());
@@ -193,7 +193,7 @@ public class TestSchema {
@Test(expected = TajoRuntimeException.class)
public final void testAddExistColumn() {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("abc", Type.FLOAT8);
schema.addColumn("bbc", Type.FLOAT8);
schema.addColumn("abc", Type.INT4);
@@ -201,31 +201,31 @@ public class TestSchema {
@Test
public final void testJson() {
- Schema schema2 = new Schema(schema.getProto());
+ Schema schema2 = SchemaFactory.newV1(schema.getProto());
String json = schema2.toJson();
- Schema fromJson = CatalogGsonHelper.fromJson(json, Schema.class);
+ Schema fromJson = CatalogGsonHelper.fromJson(json, SchemaLegacy.class);
assertEquals(schema2, fromJson);
assertEquals(schema2.getProto(), fromJson.getProto());
}
@Test
public final void testProto() {
- Schema schema2 = new Schema(schema.getProto());
+ Schema schema2 = SchemaFactory.newV1(schema.getProto());
SchemaProto proto = schema2.getProto();
- Schema fromJson = new Schema(proto);
- assertEquals(schema2, fromJson);
+ Schema fromProto = SchemaFactory.newV1(proto);
+ assertEquals(schema2, fromProto);
}
@Test
public final void testSetQualifier() {
- Schema schema2 = new Schema(schema.getProto());
+ Schema schema2 = SchemaFactory.newV1(schema.getProto());
schema2.setQualifier("test1");
Column column = schema2.getColumn(1);
assertEquals(1, schema2.getColumnIdByName("age"));
assertEquals(column, schema2.getColumn("age"));
assertEquals(column, schema2.getColumn("test1.age"));
- Schema schema3 = new Schema();
+ Schema schema3 = SchemaFactory.newV1();
schema3.addColumn("tb1.col1", Type.INT4);
schema3.addColumn("col2", Type.INT4);
assertEquals("tb1", schema3.getColumn(0).getQualifier());
@@ -267,17 +267,17 @@ public class TestSchema {
@Test
public void testNestedRecord4() {
- Schema root = new Schema();
+ Schema root = SchemaFactory.newV1();
- Schema nf2DotNf1 = new Schema();
+ Schema nf2DotNf1 = SchemaFactory.newV1();
nf2DotNf1.addColumn("f1", Type.INT8);
nf2DotNf1.addColumn("f2", Type.INT8);
- Schema nf2DotNf2 = new Schema();
+ Schema nf2DotNf2 = SchemaFactory.newV1();
nf2DotNf2.addColumn("f1", Type.INT8);
nf2DotNf2.addColumn("f2", Type.INT8);
- Schema nf2 = new Schema();
+ Schema nf2 = SchemaFactory.newV1();
nf2.addColumn("f1", Type.INT8);
nf2.addColumn("nf1", new TypeDesc(nf2DotNf1));
nf2.addColumn("nf2", new TypeDesc(nf2DotNf2));
@@ -295,7 +295,7 @@ public class TestSchema {
assertEquals(s1, s1);
SchemaProto proto = s1.getProto();
- assertEquals("Proto (de)serialized schema is different from the original: ", s1, new Schema(proto));
+ assertEquals("Proto (de)serialized schema is different from the original: ", s1, SchemaFactory.newV1(proto));
Schema cloned = null;
try {
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
index b3d343d..f334738 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
@@ -41,7 +41,7 @@ public class TestTableDesc {
@Before
public void setup() throws IOException {
- schema = new Schema();
+ schema = SchemaFactory.newV1();
schema.addColumn("name", Type.BLOB);
schema.addColumn("addr", Type.TEXT);
info = CatalogUtil.newTableMeta("TEXT");
@@ -67,7 +67,7 @@ public class TestTableDesc {
@Test
public void test() throws CloneNotSupportedException, IOException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn("name", Type.BLOB);
schema.addColumn("addr", Type.TEXT);
TableMeta info = CatalogUtil.newTableMeta("TEXT");
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
index d85fc48..2e4c6a9 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableMeta.java
@@ -38,7 +38,7 @@ public class TestTableMeta {
@Test
public void testTableMetaTableProto() {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("name", Type.BLOB);
schema1.addColumn("addr", Type.TEXT);
TableMeta meta1 = CatalogUtil.newTableMeta("TEXT");
@@ -49,7 +49,7 @@ public class TestTableMeta {
@Test
public final void testClone() throws CloneNotSupportedException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("name", Type.BLOB);
schema1.addColumn("addr", Type.TEXT);
TableMeta meta1 = CatalogUtil.newTableMeta("TEXT");
@@ -61,7 +61,7 @@ public class TestTableMeta {
@Test
public void testSchema() throws CloneNotSupportedException {
- Schema schema1 = new Schema();
+ Schema schema1 = SchemaFactory.newV1();
schema1.addColumn("name", Type.BLOB);
schema1.addColumn("addr", Type.TEXT);
TableMeta meta1 = CatalogUtil.newTableMeta("TEXT");
@@ -78,7 +78,7 @@ public class TestTableMeta {
@Test
public void testEqualsObject() {
- Schema schema2 = new Schema();
+ Schema schema2 = SchemaFactory.newV1();
schema2.addColumn("name", Type.BLOB);
schema2.addColumn("addr", Type.TEXT);
TableMeta meta2 = CatalogUtil.newTableMeta("TEXT");
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
index 95cbf18..954817c 100644
--- a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
+++ b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
@@ -148,7 +148,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore {
path = table.getPath();
// convert HiveCatalogStore field schema into tajo field schema.
- schema = new org.apache.tajo.catalog.Schema();
+ schema = SchemaFactory.newV1();
List<FieldSchema> fieldSchemaList = table.getCols();
boolean isPartitionKey;
@@ -238,7 +238,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore {
List<FieldSchema> partitionKeys = table.getPartitionKeys();
if (null != partitionKeys) {
- org.apache.tajo.catalog.Schema expressionSchema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema expressionSchema = SchemaFactory.newV1();
StringBuilder sb = new StringBuilder();
if (partitionKeys.size() > 0) {
for (int i = 0; i < partitionKeys.size(); i++) {
@@ -814,7 +814,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore {
List<FieldSchema> partitionKeys = table.getPartitionKeys();
if (partitionKeys != null && partitionKeys.size() > 0) {
- org.apache.tajo.catalog.Schema expressionSchema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema expressionSchema = SchemaFactory.newV1();
StringBuilder sb = new StringBuilder();
if (partitionKeys.size() > 0) {
for (int i = 0; i < partitionKeys.size(); i++) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java
index 46935fc..e8d60cf 100644
--- a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java
+++ b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java
@@ -95,7 +95,7 @@ public class TestHiveCatalogStore {
public void testTableUsingTextFile() throws Exception {
TableMeta meta = new TableMeta(BuiltinStorages.TEXT, new KeyValueSet());
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("c_custkey", TajoDataTypes.Type.INT4);
schema.addColumn("c_name", TajoDataTypes.Type.TEXT);
schema.addColumn("c_address", TajoDataTypes.Type.TEXT);
@@ -135,7 +135,7 @@ public class TestHiveCatalogStore {
options.set(StorageConstants.RCFILE_SERDE, StorageConstants.DEFAULT_BINARY_SERDE);
TableMeta meta = new TableMeta(BuiltinStorages.RCFILE, options);
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("r_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("r_name", TajoDataTypes.Type.TEXT);
schema.addColumn("r_comment", TajoDataTypes.Type.TEXT);
@@ -169,7 +169,7 @@ public class TestHiveCatalogStore {
options.set(StorageConstants.RCFILE_SERDE, StorageConstants.DEFAULT_TEXT_SERDE);
TableMeta meta = new TableMeta(BuiltinStorages.RCFILE, options);
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("r_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("r_name", TajoDataTypes.Type.TEXT);
schema.addColumn("r_comment", TajoDataTypes.Type.TEXT);
@@ -203,7 +203,7 @@ public class TestHiveCatalogStore {
options.set(StorageConstants.TEXT_NULL, StringEscapeUtils.escapeJava("\u0003"));
TableMeta meta = new TableMeta(BuiltinStorages.TEXT, options);
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("s_suppkey", TajoDataTypes.Type.INT4);
schema.addColumn("s_name", TajoDataTypes.Type.TEXT);
schema.addColumn("s_address", TajoDataTypes.Type.TEXT);
@@ -252,7 +252,7 @@ public class TestHiveCatalogStore {
public void testAddTableByPartition() throws Exception {
TableMeta meta = new TableMeta("TEXT", new KeyValueSet());
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("n_name", TajoDataTypes.Type.TEXT);
schema.addColumn("n_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("n_comment", TajoDataTypes.Type.TEXT);
@@ -261,7 +261,7 @@ public class TestHiveCatalogStore {
TableDesc table = new TableDesc(CatalogUtil.buildFQName(DB_NAME, NATION), schema, meta,
new Path(warehousePath, new Path(DB_NAME, NATION)).toUri());
- org.apache.tajo.catalog.Schema expressionSchema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema expressionSchema = SchemaFactory.newV1();
expressionSchema.addColumn("n_nationkey", TajoDataTypes.Type.INT4);
expressionSchema.addColumn("n_date", TajoDataTypes.Type.TEXT);
@@ -500,7 +500,7 @@ public class TestHiveCatalogStore {
@Test
public void testGetAllTableNames() throws Exception{
TableMeta meta = new TableMeta(BuiltinStorages.TEXT, new KeyValueSet());
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("n_name", TajoDataTypes.Type.TEXT);
schema.addColumn("n_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("n_comment", TajoDataTypes.Type.TEXT);
@@ -528,7 +528,7 @@ public class TestHiveCatalogStore {
@Test
public void testDeleteTable() throws Exception {
TableMeta meta = new TableMeta(BuiltinStorages.TEXT, new KeyValueSet());
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("n_name", TajoDataTypes.Type.TEXT);
schema.addColumn("n_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("n_comment", TajoDataTypes.Type.TEXT);
@@ -553,7 +553,7 @@ public class TestHiveCatalogStore {
options.set(StorageConstants.SEQUENCEFILE_SERDE, StorageConstants.DEFAULT_BINARY_SERDE);
TableMeta meta = new TableMeta(BuiltinStorages.SEQUENCE_FILE, options);
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("r_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("r_name", TajoDataTypes.Type.TEXT);
schema.addColumn("r_comment", TajoDataTypes.Type.TEXT);
@@ -587,7 +587,7 @@ public class TestHiveCatalogStore {
options.set(StorageConstants.SEQUENCEFILE_SERDE, StorageConstants.DEFAULT_TEXT_SERDE);
TableMeta meta = new TableMeta(BuiltinStorages.SEQUENCE_FILE, options);
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("r_regionkey", TajoDataTypes.Type.INT4);
schema.addColumn("r_name", TajoDataTypes.Type.TEXT);
schema.addColumn("r_comment", TajoDataTypes.Type.TEXT);
@@ -619,7 +619,7 @@ public class TestHiveCatalogStore {
public void testTableUsingParquet() throws Exception {
TableMeta meta = new TableMeta("PARQUET", new KeyValueSet());
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("c_custkey", TajoDataTypes.Type.INT4);
schema.addColumn("c_name", TajoDataTypes.Type.TEXT);
schema.addColumn("c_address", TajoDataTypes.Type.TEXT);
@@ -656,7 +656,7 @@ public class TestHiveCatalogStore {
TableMeta meta = new TableMeta(BuiltinStorages.TEXT, new KeyValueSet());
- org.apache.tajo.catalog.Schema schema = new org.apache.tajo.catalog.Schema();
+ org.apache.tajo.catalog.Schema schema = SchemaFactory.newV1();
schema.addColumn("col1", TajoDataTypes.Type.INT4);
schema.addColumn("col2", TajoDataTypes.Type.INT1);
schema.addColumn("col3", TajoDataTypes.Type.INT2);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
index 99ffcb5..1c93d08 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
@@ -2717,7 +2717,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
// Since the column names in the unified name are always sorted
// in order of occurrence position in the relation schema,
// they can be uniquely identified.
- String unifiedName = CatalogUtil.getUnifiedSimpleColumnName(new Schema(tableDescProto.getSchema()), columnNames);
+ String unifiedName = CatalogUtil.getUnifiedSimpleColumnName(SchemaFactory.newV1(tableDescProto.getSchema()), columnNames);
pstmt.setInt(1, databaseId);
pstmt.setInt(2, tableId);
pstmt.setString(3, unifiedName);
@@ -2784,12 +2784,12 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try (PreparedStatement pstmt = getConnection().prepareStatement(sql)) {
int databaseId = getDatabaseId(databaseName);
int tableId = getTableId(databaseId, databaseName, tableName);
- Schema relationSchema = new Schema(getTable(databaseName, tableName).getSchema());
+ Schema relationSchema = SchemaFactory.newV1(getTable(databaseName, tableName).getSchema());
// Since the column names in the unified name are always sorted
// in order of occurrence position in the relation schema,
// they can be uniquely identified.
- String unifiedName = CatalogUtil.getUnifiedSimpleColumnName(new Schema(relationSchema), columnNames);
+ String unifiedName = CatalogUtil.getUnifiedSimpleColumnName(SchemaFactory.newV1(relationSchema), columnNames);
pstmt.setInt(1, databaseId);
pstmt.setInt(2, tableId);
pstmt.setString(3, unifiedName);
http://git-wip-us.apache.org/repos/asf/tajo/blob/8dad551e/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/CatalogTestingUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/CatalogTestingUtil.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/CatalogTestingUtil.java
index 3a1a0cd..51461d1 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/CatalogTestingUtil.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/CatalogTestingUtil.java
@@ -197,7 +197,7 @@ public class CatalogTestingUtil {
}
public static TableDesc buildTableDesc(String databaseName, String tableName, String testDir) throws IOException {
- Schema schema = new Schema();
+ Schema schema = SchemaFactory.newV1();
schema.addColumn(CatalogUtil.buildFQName(tableName, "Column"), Type.BLOB);
schema.addColumn(CatalogUtil.buildFQName(tableName, "column"), Type.INT4);
schema.addColumn(CatalogUtil.buildFQName(tableName, "cOlumn"), Type.INT8);
@@ -213,7 +213,7 @@ public class CatalogTestingUtil {
}
public static TableDesc buildPartitionTableDesc(String databaseName, String tableName, String testDir) throws Exception {
- Schema partSchema = new Schema();
+ Schema partSchema = SchemaFactory.newV1();
partSchema.addColumn(CatalogUtil.buildFQName(tableName, "DaTe"), Type.TEXT);
partSchema.addColumn(CatalogUtil.buildFQName(tableName, "dAtE"), Type.TEXT);
PartitionMethodDesc partitionMethodDesc =
[2/5] tajo git commit: TAJO-2099: Implement an Adapter for legacy
Schema.
Posted by hy...@apache.org.
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());