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 2014/02/20 12:10:30 UTC
[1/3] TAJO-610: Refactor Column class.
Repository: incubator-tajo
Updated Branches:
refs/heads/master e63f4b09f -> e2f4798b0
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java b/tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java
index 1151a0a..5c29928 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java
@@ -91,8 +91,8 @@ public class RawFile {
buffer = ByteBuffer.allocateDirect(128 * 1024);
- columnTypes = new DataType[schema.getColumnNum()];
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ columnTypes = new DataType[schema.size()];
+ for (int i = 0; i < schema.size(); i++) {
columnTypes[i] = schema.getColumn(i).getDataType();
}
@@ -102,7 +102,7 @@ public class RawFile {
channel.read(buffer);
buffer.flip();
- nullFlags = new BitArray(schema.getColumnNum());
+ nullFlags = new BitArray(schema.size());
headerSize = RECORD_SIZE + 2 + nullFlags.bytesLength();
super.init();
@@ -423,8 +423,8 @@ public class RawFile {
channel = randomAccessFile.getChannel();
pos = 0;
- columnTypes = new DataType[schema.getColumnNum()];
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ columnTypes = new DataType[schema.size()];
+ for (int i = 0; i < schema.size(); i++) {
columnTypes[i] = schema.getColumn(i).getDataType();
}
@@ -432,7 +432,7 @@ public class RawFile {
// comput the number of bytes, representing the null flags
- nullFlags = new BitArray(schema.getColumnNum());
+ nullFlags = new BitArray(schema.size());
headerSize = RECORD_SIZE + 2 + nullFlags.bytesLength();
if (enabledStats) {
@@ -559,7 +559,7 @@ public class RawFile {
buffer.position(recordOffset + headerSize);
// reset the null flags
nullFlags.clear();
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
if (enabledStats) {
stats.analyzeField(i, t.get(i));
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/RowFile.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/RowFile.java b/tajo-storage/src/main/java/org/apache/tajo/storage/RowFile.java
index 954eb54..30c321c 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/RowFile.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/RowFile.java
@@ -75,7 +75,7 @@ public class RowFile {
conf.getInt(ConfVars.RAWFILE_SYNC_INTERVAL.varname,
SYNC_SIZE * 100);
- nullFlags = new BitArray(schema.getColumnNum());
+ nullFlags = new BitArray(schema.size());
tupleHeaderSize = nullFlags.bytesLength() + (2 * Short.SIZE / 8);
this.start = fragment.getStartKey();
this.end = this.start + fragment.getEndKey();
@@ -85,7 +85,7 @@ public class RowFile {
// set default page size.
fs = fragment.getPath().getFileSystem(conf);
in = fs.open(fragment.getPath());
- buffer = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE * schema.getColumnNum());
+ buffer = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE * schema.size());
buffer.flip();
readHeader();
@@ -180,7 +180,7 @@ public class RowFile {
}
int i;
- tuple = new VTuple(schema.getColumnNum());
+ tuple = new VTuple(schema.size());
int nullFlagSize = buffer.getShort();
byte[] nullFlagBytes = new byte[nullFlagSize];
@@ -196,7 +196,7 @@ public class RowFile {
Datum datum;
Column col;
- for (i = 0; i < schema.getColumnNum(); i++) {
+ for (i = 0; i < schema.size(); i++) {
if (!nullFlags.get(i)) {
col = schema.getColumn(i);
switch (col.getDataType().getType()) {
@@ -351,7 +351,7 @@ public class RowFile {
buffer = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
- nullFlags = new BitArray(schema.getColumnNum());
+ nullFlags = new BitArray(schema.size());
if (enabledStats) {
this.stats = new TableStatistics(this.schema);
@@ -373,7 +373,7 @@ public class RowFile {
buffer.clear();
nullFlags.clear();
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
if (enabledStats) {
stats.analyzeField(i, t.get(i));
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java b/tajo-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
index b0cb09d..7a421a8 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
@@ -28,7 +28,7 @@ import java.nio.ByteBuffer;
public class RowStoreUtil {
public static int[] getTargetIds(Schema inSchema, Schema outSchema) {
- int[] targetIds = new int[outSchema.getColumnNum()];
+ int[] targetIds = new int[outSchema.size()];
int i = 0;
for (Column target : outSchema.getColumns()) {
targetIds[i] = inSchema.getColumnId(target.getQualifiedName());
@@ -50,10 +50,10 @@ public class RowStoreUtil {
public static Tuple toTuple(Schema schema, byte [] bytes) {
ByteBuffer bb = ByteBuffer.wrap(bytes);
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
Column col;
TajoDataTypes.DataType type;
- for (int i =0; i < schema.getColumnNum(); i++) {
+ for (int i =0; i < schema.size(); i++) {
col = schema.getColumn(i);
type = col.getDataType();
switch (type.getType()) {
@@ -164,7 +164,7 @@ public class RowStoreUtil {
int size = StorageUtil.getRowByteSize(schema);
ByteBuffer bb = ByteBuffer.allocate(size);
Column col;
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
col = schema.getColumn(i);
switch (col.getDataType().getType()) {
case BOOLEAN: bb.put(tuple.get(i).asByte()); break;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/TableStatistics.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/TableStatistics.java b/tajo-storage/src/main/java/org/apache/tajo/storage/TableStatistics.java
index 41c9d61..cbee95e 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/TableStatistics.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/TableStatistics.java
@@ -42,14 +42,14 @@ public class TableStatistics {
public TableStatistics(Schema schema) {
this.schema = schema;
- minValues = new VTuple(schema.getColumnNum());
- maxValues = new VTuple(schema.getColumnNum());
+ minValues = new VTuple(schema.size());
+ maxValues = new VTuple(schema.size());
- numNulls = new long[schema.getColumnNum()];
- comparable = new boolean[schema.getColumnNum()];
+ numNulls = new long[schema.size()];
+ comparable = new boolean[schema.size()];
DataType type;
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
type = schema.getColumn(i).getDataType();
if (type.getType() == Type.PROTOBUF) {
comparable[i] = false;
@@ -101,7 +101,7 @@ public class TableStatistics {
TableStats stat = new TableStats();
ColumnStats columnStats;
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
columnStats = new ColumnStats(schema.getColumn(i));
columnStats.setNumNulls(numNulls[i]);
columnStats.setMinValue(minValues.get(i));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java b/tajo-storage/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
index a6b8781..afbcaa8 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
@@ -705,7 +705,7 @@ public class RCFile {
RECORD_INTERVAL = conf.getInt(RECORD_INTERVAL_CONF_STR, RECORD_INTERVAL);
COLUMNS_BUFFER_SIZE = conf.getInt(COLUMNS_BUFFER_SIZE_CONF_STR, COLUMNS_BUFFER_SIZE);
- columnNumber = schema.getColumnNum();
+ columnNumber = schema.size();
}
public void init() throws IOException {
@@ -867,7 +867,7 @@ public class RCFile {
* @throws IOException
*/
public void append(Tuple tuple) throws IOException {
- int size = schema.getColumnNum();
+ int size = schema.size();
for (int i = 0; i < size; i++) {
Datum datum = tuple.get(i);
@@ -1179,7 +1179,7 @@ public class RCFile {
targetColumnIndexes = new int[targets.length];
for (int i = 0; i < targets.length; i++) {
- targetColumnIndexes[i] = schema.getColumnIdByName(targets[i].getColumnName());
+ targetColumnIndexes[i] = schema.getColumnIdByName(targets[i].getSimpleName());
}
Arrays.sort(targetColumnIndexes);
@@ -1592,7 +1592,7 @@ public class RCFile {
return null;
}
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
getCurrentRow(tuple);
return tuple;
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
index 3209469..2c35148 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
@@ -61,10 +61,10 @@ public class TrevniAppender extends FileAppender {
fos = fs.create(path);
ColumnMetaData [] trevniMetas =
- new ColumnMetaData[schema.getColumnNum()];
+ new ColumnMetaData[schema.size()];
int i = 0;
for (Column column : schema.getColumns()) {
- trevniMetas[i++] = new ColumnMetaData(column.getColumnName(),
+ trevniMetas[i++] = new ColumnMetaData(column.getSimpleName(),
getType(column.getDataType().getType()));
}
@@ -127,7 +127,7 @@ public class TrevniAppender extends FileAppender {
public void addTuple(Tuple t) throws IOException {
Column col;
writer.startRow();
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
if (enabledStats) {
stats.analyzeField(i, t.get(i));
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniScanner.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniScanner.java b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniScanner.java
index 2c2037f..ed71730 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniScanner.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniScanner.java
@@ -28,9 +28,9 @@ import org.apache.tajo.datum.DatumFactory;
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.datum.ProtobufDatumFactory;
import org.apache.tajo.storage.FileScanner;
-import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.storage.VTuple;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.trevni.ColumnFileReader;
import org.apache.trevni.ColumnValues;
import org.apache.trevni.avro.HadoopInput;
@@ -71,14 +71,14 @@ public class TrevniScanner extends FileScanner {
projectionMap = new int[targets.length];
int tid;
for (int i = 0; i < targets.length; i++) {
- tid = schema.getColumnIdByName(targets[i].getColumnName());
+ tid = schema.getColumnIdByName(targets[i].getSimpleName());
projectionMap[i] = tid;
}
}
@Override
public Tuple next() throws IOException {
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
if (!columns[0].hasNext()) {
return null;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/CSVFileScanner.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/v2/CSVFileScanner.java b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/CSVFileScanner.java
index b93672b..79ddfdd 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/v2/CSVFileScanner.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/CSVFileScanner.java
@@ -136,7 +136,7 @@ public class CSVFileScanner extends FileScannerV2 {
targetColumnIndexes = new int[targets.length];
for (int i = 0; i < targets.length; i++) {
- targetColumnIndexes[i] = schema.getColumnIdByName(targets[i].getColumnName());
+ targetColumnIndexes[i] = schema.getColumnIdByName(targets[i].getSimpleName());
}
if (LOG.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/FileScannerV2.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/v2/FileScannerV2.java b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/FileScannerV2.java
index 0d5b33d..f9ad2f7 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/v2/FileScannerV2.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/FileScannerV2.java
@@ -26,9 +26,9 @@ import org.apache.hadoop.fs.Path;
import org.apache.tajo.catalog.Column;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.TableMeta;
-import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.storage.Scanner;
import org.apache.tajo.storage.Tuple;
+import org.apache.tajo.storage.fragment.FileFragment;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -78,7 +78,7 @@ public abstract class FileScannerV2 implements Scanner {
this.meta = meta;
this.schema = schema;
this.fragment = fragment;
- this.columnNum = this.schema.getColumnNum();
+ this.columnNum = this.schema.size();
this.fs = fragment.getPath().getFileSystem(conf);
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/RCFileScanner.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/v2/RCFileScanner.java b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/RCFileScanner.java
index a549a51..5d2f861 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/v2/RCFileScanner.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/v2/RCFileScanner.java
@@ -30,7 +30,10 @@ import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.TableMeta;
import org.apache.tajo.datum.Datum;
import org.apache.tajo.datum.NullDatum;
-import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.BinarySerializerDeserializer;
+import org.apache.tajo.storage.SerializerDeserializer;
+import org.apache.tajo.storage.Tuple;
+import org.apache.tajo.storage.VTuple;
import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.storage.rcfile.BytesRefArrayWritable;
import org.apache.tajo.storage.rcfile.ColumnProjectionUtils;
@@ -106,9 +109,9 @@ public class RCFileScanner extends FileScannerV2 {
}
private Tuple makeTuple() throws IOException {
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
synchronized (lock) {
- column.resetValid(schema.getColumnNum());
+ column.resetValid(schema.size());
int tid; // target column id
for (int i = 0; i < projectionMap.length; i++) {
tid = projectionMap[i];
@@ -136,7 +139,7 @@ public class RCFileScanner extends FileScannerV2 {
projectionMap = new Integer[targets.length];
int tid;
for (int i = 0; i < targets.length; i++) {
- tid = schema.getColumnIdByName(targets[i].getColumnName());
+ tid = schema.getColumnIdByName(targets[i].getSimpleName());
projectionMap[i] = tid;
}
ArrayList<Integer> projectionIdList = new ArrayList<Integer>(TUtil.newList(projectionMap));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/test/java/org/apache/tajo/storage/TestLazyTuple.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/test/java/org/apache/tajo/storage/TestLazyTuple.java b/tajo-storage/src/test/java/org/apache/tajo/storage/TestLazyTuple.java
index 2618527..cb2f7a6 100644
--- a/tajo-storage/src/test/java/org/apache/tajo/storage/TestLazyTuple.java
+++ b/tajo-storage/src/test/java/org/apache/tajo/storage/TestLazyTuple.java
@@ -94,7 +94,7 @@ public class TestLazyTuple {
@Test
public void testContain() {
- int colNum = schema.getColumnNum();
+ int colNum = schema.size();
LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1);
t1.put(0, DatumFactory.createInt4(1));
@@ -118,7 +118,7 @@ public class TestLazyTuple {
@Test
public void testPut() {
- int colNum = schema.getColumnNum();
+ int colNum = schema.size();
LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1);
t1.put(0, DatumFactory.createText("str"));
t1.put(1, DatumFactory.createInt4(2));
@@ -134,7 +134,7 @@ public class TestLazyTuple {
@Test
public void testEquals() {
- int colNum = schema.getColumnNum();
+ int colNum = schema.size();
LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1);
LazyTuple t2 = new LazyTuple(schema, new byte[colNum][], -1);
@@ -161,7 +161,7 @@ public class TestLazyTuple {
@Test
public void testHashCode() {
- int colNum = schema.getColumnNum();
+ int colNum = schema.size();
LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1);
LazyTuple t2 = new LazyTuple(schema, new byte[colNum][], -1);
@@ -195,7 +195,7 @@ public class TestLazyTuple {
@Test
public void testPutTuple() {
- int colNum = schema.getColumnNum();
+ int colNum = schema.size();
LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1);
t1.put(0, DatumFactory.createInt4(1));
@@ -207,7 +207,7 @@ public class TestLazyTuple {
schema2.addColumn("col1", TajoDataTypes.Type.INT8);
schema2.addColumn("col2", TajoDataTypes.Type.INT8);
- LazyTuple t2 = new LazyTuple(schema2, new byte[schema2.getColumnNum()][], -1);
+ LazyTuple t2 = new LazyTuple(schema2, new byte[schema2.size()][], -1);
t2.put(0, DatumFactory.createInt4(4));
t2.put(1, DatumFactory.createInt4(5));
@@ -238,7 +238,7 @@ public class TestLazyTuple {
@Test
public void testClone() throws CloneNotSupportedException {
- int colNum = schema.getColumnNum();
+ int colNum = schema.size();
LazyTuple t1 = new LazyTuple(schema, new byte[colNum][], -1);
t1.put(0, DatumFactory.createInt4(1));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/test/java/org/apache/tajo/storage/TestTupleComparator.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/test/java/org/apache/tajo/storage/TestTupleComparator.java b/tajo-storage/src/test/java/org/apache/tajo/storage/TestTupleComparator.java
index 7092953..ab7c2b2 100644
--- a/tajo-storage/src/test/java/org/apache/tajo/storage/TestTupleComparator.java
+++ b/tajo-storage/src/test/java/org/apache/tajo/storage/TestTupleComparator.java
@@ -18,14 +18,14 @@
package org.apache.tajo.storage;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.SortSpec;
import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.datum.Datum;
import org.apache.tajo.datum.DatumFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -66,8 +66,8 @@ public class TestTupleComparator {
DatumFactory.createInt4(4),
DatumFactory.createText("abd")});
- SortSpec sortKey1 = new SortSpec(schema.getColumnByFQN("col4"), true, false);
- SortSpec sortKey2 = new SortSpec(schema.getColumnByFQN("col5"), true, false);
+ SortSpec sortKey1 = new SortSpec(schema.getColumn("col4"), true, false);
+ SortSpec sortKey2 = new SortSpec(schema.getColumn("col5"), true, false);
TupleComparator tc = new TupleComparator(schema,
new SortSpec[] {sortKey1, sortKey2});
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java b/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
index 34c362c..54798a4 100644
--- a/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
+++ b/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
@@ -42,9 +42,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Random;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
@RunWith(Parameterized.class)
public class TestBSTIndex {
@@ -110,8 +108,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("long"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("double"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("long", Type.INT8));
@@ -146,7 +144,7 @@ public class TestBSTIndex {
creater.close();
scanner.close();
- tuple = new VTuple(keySchema.getColumnNum());
+ tuple = new VTuple(keySchema.size());
BSTIndexReader reader = bst.getIndexReader(new Path(testDir, "testFindValue_" + storeType + ".idx"), keySchema, comp);
reader.open();
scanner = StorageManagerFactory.getSeekableScanner(conf, meta, schema, tablet, schema);
@@ -184,8 +182,8 @@ public class TestBSTIndex {
appender.init();
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("long"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("double"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("long", Type.INT8));
@@ -224,7 +222,7 @@ public class TestBSTIndex {
long fileLen = status.getLen();
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
- tuple = new VTuple(keySchema.getColumnNum());
+ tuple = new VTuple(keySchema.size());
BSTIndexReader reader = bst.getIndexReader(new Path(testDir, "testBuildIndexWithAppender_" + storeType + ".idx"),
keySchema, comp);
reader.open();
@@ -276,8 +274,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, status.getLen());
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("long"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("double"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("long", Type.INT8));
@@ -347,8 +345,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("int"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("long"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("int", Type.INT4));
@@ -437,8 +435,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("int"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("long"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("int", Type.INT4));
@@ -517,8 +515,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("long"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("double"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("long", Type.INT8));
@@ -551,7 +549,7 @@ public class TestBSTIndex {
creater.close();
scanner.close();
- tuple = new VTuple(keySchema.getColumnNum());
+ tuple = new VTuple(keySchema.size());
BSTIndexReader reader = bst.getIndexReader(new Path(testDir, "testFindMinValue_" + storeType + ".idx"),
keySchema, comp);
@@ -599,8 +597,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("int"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("long"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("int", Type.INT4));
@@ -704,8 +702,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("int"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("long"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("int", Type.INT4));
@@ -784,8 +782,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("long"), false, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("double"), false, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("long"), false, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("double"), false, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("long", Type.INT8));
@@ -820,7 +818,7 @@ public class TestBSTIndex {
creater.close();
scanner.close();
- tuple = new VTuple(keySchema.getColumnNum());
+ tuple = new VTuple(keySchema.size());
BSTIndexReader reader = bst.getIndexReader(new Path(testDir, "testFindValueDescOrder_" + storeType + ".idx"),
keySchema, comp);
@@ -875,8 +873,8 @@ public class TestBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("int"), false, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("long"), false, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("int"), false, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("long"), false, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("int", Type.INT4));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java b/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
index 6d5d90f..53a2531 100644
--- a/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
+++ b/tajo-storage/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
@@ -97,8 +97,8 @@ public class TestSingleCSVFileBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec[] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("long"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("double"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("long"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("double"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("long", Type.INT8));
@@ -132,7 +132,7 @@ public class TestSingleCSVFileBSTIndex {
creater.close();
fileScanner.close();
- tuple = new VTuple(keySchema.getColumnNum());
+ tuple = new VTuple(keySchema.size());
BSTIndexReader reader = bst.getIndexReader(new Path(testDir,
"FindValueInCSV.idx"), keySchema, comp);
reader.open();
@@ -186,8 +186,8 @@ public class TestSingleCSVFileBSTIndex {
FileFragment tablet = new FileFragment("table1_1", status.getPath(), 0, fileLen);
SortSpec [] sortKeys = new SortSpec[2];
- sortKeys[0] = new SortSpec(schema.getColumnByFQN("int"), true, false);
- sortKeys[1] = new SortSpec(schema.getColumnByFQN("long"), true, false);
+ sortKeys[0] = new SortSpec(schema.getColumn("int"), true, false);
+ sortKeys[1] = new SortSpec(schema.getColumn("long"), true, false);
Schema keySchema = new Schema();
keySchema.addColumn(new Column("int", Type.INT4));
[3/3] git commit: TAJO-610: Refactor Column class.
Posted by hy...@apache.org.
TAJO-610: Refactor Column class.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/e2f4798b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/e2f4798b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/e2f4798b
Branch: refs/heads/master
Commit: e2f4798b09b2efccfe14a6eac46055d3b6c72ffb
Parents: e63f4b0
Author: Hyunsik Choi <hy...@apache.org>
Authored: Thu Feb 20 20:02:24 2014 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Thu Feb 20 20:02:24 2014 +0900
----------------------------------------------------------------------
CHANGES.txt | 4 +-
.../org/apache/tajo/catalog/CatalogUtil.java | 61 +++++++-
.../java/org/apache/tajo/catalog/Column.java | 146 +++++++++----------
.../org/apache/tajo/catalog/DDLBuilder.java | 2 +-
.../java/org/apache/tajo/catalog/Schema.java | 65 ++++++---
.../src/main/proto/CatalogProtos.proto | 3 +-
.../org/apache/tajo/catalog/TestColumn.java | 5 +-
.../org/apache/tajo/catalog/TestSchema.java | 40 ++---
.../tajo/catalog/store/HCatalogStore.java | 2 +-
.../tajo/catalog/store/TestHCatalogStore.java | 26 ++--
.../tajo/catalog/store/AbstractDBStore.java | 28 +---
.../org/apache/tajo/catalog/store/MemStore.java | 2 +-
.../org/apache/tajo/catalog/TestCatalog.java | 10 +-
.../org/apache/tajo/catalog/TestDBStore.java | 10 +-
.../org/apache/tajo/cli/DescTableCommand.java | 4 +-
.../apache/tajo/jdbc/TajoResultSetMetaData.java | 4 +-
.../java/org/apache/tajo/TajoConstants.java | 2 +
.../apache/tajo/engine/eval/EvalTreeUtil.java | 4 +-
.../org/apache/tajo/engine/eval/FieldEval.java | 4 +-
.../apache/tajo/engine/planner/LogicalPlan.java | 17 ++-
.../engine/planner/LogicalPlanPreprocessor.java | 10 +-
.../engine/planner/LogicalPlanVerifier.java | 16 +-
.../tajo/engine/planner/LogicalPlanner.java | 16 +-
.../apache/tajo/engine/planner/PlannerUtil.java | 89 +----------
.../tajo/engine/planner/enforce/Enforcer.java | 2 +-
.../engine/planner/global/GlobalPlanner.java | 2 +-
.../engine/planner/logical/GroupbyNode.java | 2 +-
.../tajo/engine/planner/logical/ScanNode.java | 3 +-
.../tajo/engine/planner/logical/SortNode.java | 2 +-
.../planner/logical/TableSubQueryNode.java | 3 +-
.../engine/planner/logical/join/JoinGraph.java | 8 +-
.../engine/planner/physical/BNLJoinExec.java | 2 +-
.../planner/physical/BSTIndexScanExec.java | 2 +-
.../planner/physical/ColPartitionStoreExec.java | 4 +-
.../planner/physical/HashAggregateExec.java | 2 +-
.../planner/physical/HashFullOuterJoinExec.java | 6 +-
.../engine/planner/physical/HashJoinExec.java | 2 +-
.../planner/physical/HashLeftOuterJoinExec.java | 4 +-
.../physical/MergeFullOuterJoinExec.java | 6 +-
.../engine/planner/physical/MergeJoinExec.java | 2 +-
.../engine/planner/physical/NLJoinExec.java | 2 +-
.../planner/physical/NLLeftOuterJoinExec.java | 4 +-
.../engine/planner/physical/PhysicalExec.java | 2 +-
.../engine/planner/physical/ProjectionExec.java | 2 +-
.../physical/RangeShuffleFileWriteExec.java | 2 +-
.../physical/RightOuterMergeJoinExec.java | 4 +-
.../planner/physical/SortAggregateExec.java | 4 +-
.../rewrite/PartitionedTableRewriter.java | 10 +-
.../apache/tajo/engine/query/QueryContext.java | 4 +-
.../apache/tajo/engine/utils/SchemaUtil.java | 4 +-
.../org/apache/tajo/engine/utils/TupleUtil.java | 14 +-
.../java/org/apache/tajo/util/IndexUtil.java | 4 +-
.../resources/webapps/admin/catalogview.jsp | 14 +-
.../apache/tajo/engine/eval/ExprTestBase.java | 6 +-
.../tajo/engine/eval/TestEvalTreeUtil.java | 4 +-
.../engine/planner/TestLogicalOptimizer.java | 4 +-
.../tajo/engine/planner/TestLogicalPlanner.java | 47 +++---
.../tajo/engine/planner/TestPlannerUtil.java | 12 +-
.../planner/physical/TestBNLJoinExec.java | 8 +-
.../planner/physical/TestBSTIndexExec.java | 12 +-
.../planner/physical/TestExternalSortExec.java | 2 +-
.../physical/TestFullOuterHashJoinExec.java | 10 +-
.../physical/TestFullOuterMergeJoinExec.java | 16 +-
.../planner/physical/TestHashAntiJoinExec.java | 8 +-
.../planner/physical/TestHashJoinExec.java | 4 +-
.../planner/physical/TestHashSemiJoinExec.java | 8 +-
.../physical/TestLeftOuterHashJoinExec.java | 12 +-
.../physical/TestLeftOuterNLJoinExec.java | 6 +-
.../planner/physical/TestMergeJoinExec.java | 8 +-
.../engine/planner/physical/TestNLJoinExec.java | 8 +-
.../planner/physical/TestPhysicalPlanner.java | 4 +-
.../physical/TestRightOuterHashJoinExec.java | 14 +-
.../physical/TestRightOuterMergeJoinExec.java | 16 +-
.../engine/planner/physical/TestSortExec.java | 2 +-
.../apache/tajo/engine/query/TestCTASQuery.java | 4 +-
.../tajo/engine/query/TestTablePartitions.java | 9 +-
.../org/apache/tajo/jdbc/TestResultSet.java | 9 +-
.../java/org/apache/tajo/jdbc/TestTajoJdbc.java | 2 +-
.../tajo/worker/TestRangeRetrieverHandler.java | 12 +-
.../apache/tajo/jdbc/TajoDatabaseMetaData.java | 4 +-
.../java/org/apache/tajo/storage/CSVFile.java | 2 +-
.../org/apache/tajo/storage/FileScanner.java | 2 +-
.../java/org/apache/tajo/storage/LazyTuple.java | 2 +-
.../java/org/apache/tajo/storage/RawFile.java | 14 +-
.../java/org/apache/tajo/storage/RowFile.java | 12 +-
.../org/apache/tajo/storage/RowStoreUtil.java | 8 +-
.../apache/tajo/storage/TableStatistics.java | 12 +-
.../org/apache/tajo/storage/rcfile/RCFile.java | 8 +-
.../tajo/storage/trevni/TrevniAppender.java | 6 +-
.../tajo/storage/trevni/TrevniScanner.java | 6 +-
.../apache/tajo/storage/v2/CSVFileScanner.java | 2 +-
.../apache/tajo/storage/v2/FileScannerV2.java | 4 +-
.../apache/tajo/storage/v2/RCFileScanner.java | 11 +-
.../org/apache/tajo/storage/TestLazyTuple.java | 14 +-
.../tajo/storage/TestTupleComparator.java | 10 +-
.../apache/tajo/storage/index/TestBSTIndex.java | 52 ++++---
.../index/TestSingleCSVFileBSTIndex.java | 10 +-
97 files changed, 543 insertions(+), 575 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index d7125b0..0be4426 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -130,7 +130,9 @@ Release 0.8.0 - unreleased
IMPROVEMENTS
- TAJO-601: Improve distinct aggregation query processing.
+ TAJO-610: Refactor Column class. (hyunsik)
+
+ TAJO-601: Improve distinct aggregation query processing. (hyunsik)
TAJO-305: Implement killQuery feature. (hyunsik)
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/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 9f143ac..2a6727e 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
@@ -19,6 +19,7 @@
package org.apache.tajo.catalog;
import org.apache.hadoop.fs.Path;
+import org.apache.tajo.TajoConstants;
import org.apache.tajo.catalog.partition.PartitionMethodDesc;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.catalog.proto.CatalogProtos.ColumnProto;
@@ -26,13 +27,66 @@ import org.apache.tajo.catalog.proto.CatalogProtos.SchemaProto;
import org.apache.tajo.catalog.proto.CatalogProtos.TableDescProto;
import org.apache.tajo.common.TajoDataTypes.DataType;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
import java.util.Collection;
import static org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
import static org.apache.tajo.common.TajoDataTypes.Type;
public class CatalogUtil {
+ public final static String IDENTIFIER_DELIMITER = ".";
+ public final static String IDENTIFIER_DELIMITER_REGEXP = "\\.";
+
+ /**
+ * Normalize an identifier
+ *
+ * @param identifier The identifier to be normalized
+ * @return The normalized identifier
+ */
+ public static String normalizeIdentifier(String identifier) {
+ return identifier.toLowerCase();
+ }
+
+ /**
+ * Extract a qualification name from an identifier.
+ *
+ * For example, consider a table identifier like 'database1.table1'.
+ * In this case, this method extracts 'database1'.
+ *
+ * @param name The identifier to be extracted
+ * @return The extracted qualifier
+ */
+ public static String extractQualifier(String name) {
+ int lastDelimiterIdx = name.lastIndexOf(IDENTIFIER_DELIMITER);
+ if (lastDelimiterIdx > -1) {
+ return name.substring(0, lastDelimiterIdx);
+ } else {
+ return TajoConstants.EMPTY_STRING;
+ }
+ }
+
+ /**
+ * Extract a simple name from an identifier.
+ *
+ * For example, consider a table identifier like 'database1.table1'.
+ * In this case, this method extracts 'table1'.
+ *
+ * @param name The identifier to be extracted
+ * @return The extracted simple name
+ */
+ public static String extractSimpleName(String name) {
+ int lastDelimiterIdx = name.lastIndexOf(IDENTIFIER_DELIMITER);
+ if (lastDelimiterIdx > -1) {
+ // plus one means skipping a delimiter.
+ return name.substring(lastDelimiterIdx + 1, name.length());
+ } else {
+ return name;
+ }
+ }
+
public static String getCanonicalName(String signature, Collection<DataType> paramTypes) {
DataType [] types = paramTypes.toArray(new DataType[paramTypes.size()]);
return getCanonicalName(signature, types);
@@ -108,8 +162,7 @@ public class CatalogUtil {
revisedSchema.clearFields();
for (ColumnProto col : schema.getFieldsList()) {
ColumnProto.Builder builder = ColumnProto.newBuilder(col);
- builder.setColumnName(col.getColumnName());
- builder.setQualifier(tableName);
+ builder.setName(tableName + IDENTIFIER_DELIMITER + extractSimpleName(col.getName()));
revisedSchema.addFields(builder.build());
}
@@ -145,7 +198,7 @@ public class CatalogUtil {
}
public static String columnToDDLString(Column column) {
- StringBuilder sb = new StringBuilder(column.getColumnName());
+ StringBuilder sb = new StringBuilder(column.getSimpleName());
sb.append(" ").append(column.getDataType().getType());
if (column.getDataType().hasLength()) {
sb.append(" (").append(column.getDataType().getLength()).append(")");
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
index cb42086..b75cd1c 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Column.java
@@ -26,131 +26,114 @@ import org.apache.tajo.common.ProtoObject;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.json.GsonObject;
-import org.apache.tajo.util.TUtil;
/**
- * It represents a column. It is usually used for relations.
+ * Describes a column. It is an immutable object.
*/
-public class Column implements ProtoObject<ColumnProto>, Cloneable, GsonObject {
- private ColumnProto.Builder builder = null;
+public class Column implements ProtoObject<ColumnProto>, GsonObject {
+ @Expose protected String name;
+ @Expose protected DataType dataType;
- @Expose protected String qualifier; // optional
- @Expose protected String name; // required
- @Expose protected DataType dataType; // required
-
- public Column() {
- this.builder = ColumnProto.newBuilder();
- }
-
- public Column(String columnName, DataType dataType) {
- this();
- checkAndSetName(columnName.toLowerCase());
+ /**
+ *
+ * @param name Column name
+ * @param dataType Data Type with length
+ */
+ public Column(String name, DataType dataType) {
+ this.name = CatalogUtil.normalizeIdentifier(name);
this.dataType = dataType;
}
- public Column(String columnName, TajoDataTypes.Type type) {
- this(columnName, CatalogUtil.newSimpleDataType(type));
+ /**
+ *
+ * @param name Column name
+ * @param type Data Type without length
+ */
+ public Column(String name, TajoDataTypes.Type type) {
+ this(name, CatalogUtil.newSimpleDataType(type));
}
- public Column(String columnName, TajoDataTypes.Type type, int typeLength) {
- this(columnName, CatalogUtil.newDataTypeWithLen(type, typeLength));
+ /**
+ *
+ * @param name Column name
+ * @param type Data Type
+ * @param typeLength The length of type
+ */
+ public Column(String name, TajoDataTypes.Type type, int typeLength) {
+ this(name, CatalogUtil.newDataTypeWithLen(type, typeLength));
}
-
+
public Column(ColumnProto proto) {
- this();
- name = proto.getColumnName().toLowerCase();
+ name = CatalogUtil.normalizeIdentifier(proto.getName());
dataType = proto.getDataType();
- if (proto.hasQualifier()) {
- qualifier = proto.getQualifier().toLowerCase();
- }
}
- private void checkAndSetName(String qualifiedOrName) {
- String [] splits = qualifiedOrName.split("\\.");
- if (splits.length > 1) {
- qualifier = qualifiedOrName.substring(0, qualifiedOrName.lastIndexOf("."));
- name = qualifiedOrName.substring(qualifiedOrName.lastIndexOf(".") + 1, qualifiedOrName.length());
- } else {
- qualifier = null;
- name = qualifiedOrName;
- }
+ /**
+ *
+ * @return True if a column includes a table name. Otherwise, it returns False.
+ */
+ public boolean hasQualifier() {
+ return name.split(CatalogUtil.IDENTIFIER_DELIMITER_REGEXP).length > 1;
}
+ /**
+ *
+ * @return The full name of this column.
+ */
public String getQualifiedName() {
- if (qualifier != null) {
- return qualifier + "." + name;
- } else {
- return name;
- }
+ return name;
}
-
- public boolean hasQualifier() {
- return qualifier != null;
- }
-
- public void setQualifier(String qualifier) {
- this.qualifier = qualifier.toLowerCase();
- }
+ /**
+ *
+ * @return The qualifier
+ */
public String getQualifier() {
- if (qualifier != null) {
- return qualifier;
- } else {
- return "";
- }
+ return CatalogUtil.extractQualifier(name);
}
- public String getColumnName() {
- return name;
+ /**
+ *
+ * @return The simple name without qualifications
+ */
+ public String getSimpleName() {
+ return CatalogUtil.extractSimpleName(name);
}
-
- public void setName(String name) {
- checkAndSetName(name.toLowerCase());
- }
-
+
+ /**
+ *
+ * @return DataType which includes domain type and scale.
+ */
public DataType getDataType() {
return this.dataType;
}
- public void setDataType(DataType dataType) {
- this.dataType = dataType;
- }
-
@Override
public boolean equals(Object o) {
if (o instanceof Column) {
Column another = (Column)o;
- return name.equals(another.name) &&
- dataType.equals(another.dataType) &&
- TUtil.checkEquals(qualifier, another.qualifier);
+ return name.equals(another.name) && dataType.equals(another.dataType);
}
return false;
}
public int hashCode() {
- return Objects.hashCode(name, dataType, qualifier);
+ return Objects.hashCode(name, dataType);
}
@Override
- public Object clone() throws CloneNotSupportedException {
- Column column = (Column) super.clone();
- column.builder = ColumnProto.newBuilder();
- column.name = name;
- column.dataType = dataType;
- column.qualifier = qualifier != null ? qualifier : null;
- return column;
+ public Object clone() {
+ return this;
}
+ /**
+ *
+ * @return The protocol buffer object for Column
+ */
@Override
public ColumnProto getProto() {
- builder.setColumnName(this.name);
- builder.setDataType(this.dataType);
- if (qualifier != null) {
- builder.setQualifier(qualifier);
- }
-
- return builder.build();
+ return ColumnProto.newBuilder().setName(this.name).setDataType(this.dataType).build();
}
public String toString() {
@@ -167,4 +150,5 @@ public class Column implements ProtoObject<ColumnProto>, Cloneable, GsonObject {
public String toJson() {
return CatalogGsonHelper.toJson(this, Column.class);
}
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
index 12a1f74..1e51cc2 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
@@ -59,7 +59,7 @@ public class DDLBuilder {
sb.append(", ");
}
- sb.append(column.getColumnName()).append(" ");
+ sb.append(column.getSimpleName()).append(" ");
TajoDataTypes.DataType dataType = column.getDataType();
sb.append(dataType.getType().name());
if (column.getDataType().hasLength() && column.getDataType().getLength() > 0) {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/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 5f1e8d7..725e9c3 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
@@ -56,14 +56,14 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
Column tobeAdded = new Column(colProto);
fields.add(tobeAdded);
if (tobeAdded.hasQualifier()) {
- fieldsByQualifiedName.put(tobeAdded.getQualifier() + "." + tobeAdded.getColumnName(), fields.size() - 1);
+ fieldsByQualifiedName.put(tobeAdded.getQualifier() + "." + tobeAdded.getSimpleName(), fields.size() - 1);
} else {
- fieldsByQualifiedName.put(tobeAdded.getColumnName(), fields.size() - 1);
+ fieldsByQualifiedName.put(tobeAdded.getSimpleName(), fields.size() - 1);
}
- if (fieldsByName.containsKey(tobeAdded.getColumnName())) {
- fieldsByName.get(tobeAdded.getColumnName()).add(fields.size() - 1);
+ if (fieldsByName.containsKey(tobeAdded.getSimpleName())) {
+ fieldsByName.get(tobeAdded.getSimpleName()).add(fields.size() - 1);
} else {
- fieldsByName.put(tobeAdded.getColumnName(), TUtil.newList(fields.size() - 1));
+ fieldsByName.put(tobeAdded.getSimpleName(), TUtil.newList(fields.size() - 1));
}
}
}
@@ -96,13 +96,14 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
*/
public void setQualifier(String qualifier) {
fieldsByQualifiedName.clear();
- for (int i = 0; i < getColumnNum(); i++) {
- fields.get(i).setQualifier(qualifier);
+ for (int i = 0; i < size(); i++) {
+ Column column = fields.get(i);
+ fields.set(i, new Column(qualifier + "." + column.getSimpleName(), column.getDataType()));
fieldsByQualifiedName.put(fields.get(i).getQualifiedName(), i);
}
}
- public int getColumnNum() {
+ public int size() {
return this.fields.size();
}
@@ -117,26 +118,47 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
if (column.hasQualifier()) {
return fields.get(fieldsByQualifiedName.get(column.getQualifiedName()));
} else {
- return fields.get(fieldsByName.get(column.getColumnName()).get(0));
+ return fields.get(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.
+ */
public Column getColumn(String name) {
String [] parts = name.split("\\.");
if (parts.length == 2) {
- return getColumnByFQN(name);
+ return getColumnByQName(name);
} else {
return getColumnByName(name);
}
}
- public Column getColumnByFQN(String qualifiedName) {
+ /**
+ * 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.toLowerCase());
return cid != null ? fields.get(cid) : null;
}
-
- public Column getColumnByName(String colName) {
- String normalized = colName.toLowerCase();
+
+ /**
+ * 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.toLowerCase();
List<Integer> list = fieldsByName.get(normalized);
if (list == null || list.size() == 0) {
@@ -188,7 +210,7 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
public int getColumnIdByName(String colName) {
for (Column col : fields) {
- if (col.getColumnName().equals(colName.toLowerCase())) {
+ if (col.getSimpleName().equals(colName.toLowerCase())) {
String qualifiedName = col.getQualifiedName();
return fieldsByQualifiedName.get(qualifiedName);
}
@@ -218,13 +240,13 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
if (column.hasQualifier()) {
return fieldsByQualifiedName.containsKey(column.getQualifiedName());
} else {
- if (fieldsByName.containsKey(column.getColumnName())) {
- int num = fieldsByName.get(column.getColumnName()).size();
+ if (fieldsByName.containsKey(column.getSimpleName())) {
+ int num = fieldsByName.get(column.getSimpleName()).size();
if (num == 0) {
- throw new IllegalStateException("No such column name: " + column.getColumnName());
+ throw new IllegalStateException("No such column name: " + column.getSimpleName());
}
if (num > 1) {
- throw new RuntimeException("Ambiguous column name: " + column.getColumnName());
+ throw new RuntimeException("Ambiguous column name: " + column.getSimpleName());
}
return true;
}
@@ -265,7 +287,7 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
Column newCol = new Column(normalized, dataType);
fields.add(newCol);
fieldsByQualifiedName.put(newCol.getQualifiedName(), fields.size() - 1);
- fieldsByName.put(newCol.getColumnName(), TUtil.newList(fields.size() - 1));
+ fieldsByName.put(newCol.getSimpleName(), TUtil.newList(fields.size() - 1));
return this;
}
@@ -320,7 +342,7 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
public String toString() {
StringBuilder sb = new StringBuilder();
- sb.append("{(").append(getColumnNum()).append(") ");
+ sb.append("{(").append(size()).append(") ");
int i = 0;
for(Column col : fields) {
sb.append(col);
@@ -337,7 +359,6 @@ public class Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject {
@Override
public String toJson() {
return CatalogGsonHelper.toJson(this, Schema.class);
-
}
public Column [] toArray() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
index 47792a6..f5fff2c 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
+++ b/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
@@ -70,8 +70,7 @@ message ColumnMetaProto {
}
message ColumnProto {
- required string columnName = 1;
- optional string qualifier = 2;
+ required string name = 1;
required DataType dataType = 3;
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestColumn.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestColumn.java b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestColumn.java
index 81677c5..ef08d51 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestColumn.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestColumn.java
@@ -76,9 +76,8 @@ public class TestColumn {
@Test
public final void testQualifiedName() {
Column col = new Column("table_1.id", Type.INT4);
-
assertTrue(col.hasQualifier());
- assertEquals("id", col.getColumnName());
+ assertEquals("id", col.getSimpleName());
assertEquals("table_1.id", col.getQualifiedName());
assertEquals("table_1", col.getQualifier());
}
@@ -88,7 +87,7 @@ public class TestColumn {
Column col = new Column("database1.table_1.id", Type.INT4);
assertTrue(col.hasQualifier());
- assertEquals("id", col.getColumnName());
+ assertEquals("id", col.getSimpleName());
assertEquals("database1.table_1.id", col.getQualifiedName());
assertEquals("database1.table_1", col.getQualifier());
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/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 c879ecb..a61b422 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
@@ -61,9 +61,9 @@ public class TestSchema {
@Test
public final void testGetColumnString() {
- assertEquals(col1, schema.getColumnByFQN("name"));
- assertEquals(col2, schema.getColumnByFQN("age"));
- assertEquals(col3, schema.getColumnByFQN("addr"));
+ assertEquals(col1, schema.getColumn("name"));
+ assertEquals(col2, schema.getColumn("age"));
+ assertEquals(col3, schema.getColumn("addr"));
}
@Test
@@ -88,9 +88,9 @@ public class TestSchema {
public final void testGetProto() {
SchemaProto proto = schema.getProto();
- assertEquals("name", proto.getFields(0).getColumnName());
- assertEquals("age", proto.getFields(1).getColumnName());
- assertEquals("addr", proto.getFields(2).getColumnName());
+ assertEquals("name", proto.getFields(0).getName());
+ assertEquals("age", proto.getFields(1).getName());
+ assertEquals("addr", proto.getFields(2).getName());
}
@Test
@@ -102,12 +102,12 @@ public class TestSchema {
Schema schema2 = new Schema(schema.getProto());
assertEquals(schema.getProto(), schema2.getProto());
assertEquals(schema.getColumn(0), schema2.getColumn(0));
- assertEquals(schema.getColumnNum(), schema2.getColumnNum());
+ assertEquals(schema.size(), schema2.size());
Schema schema3 = (Schema) schema.clone();
assertEquals(schema.getProto(), schema3.getProto());
assertEquals(schema.getColumn(0), schema3.getColumn(0));
- assertEquals(schema.getColumnNum(), schema3.getColumnNum());
+ assertEquals(schema.size(), schema3.size());
}
@Test(expected = AlreadyExistsFieldException.class)
@@ -141,32 +141,32 @@ public class TestSchema {
schema2.setQualifier("test1");
Column column = schema2.getColumn(1);
assertEquals(1, schema2.getColumnIdByName("age"));
- assertEquals(column, schema2.getColumnByName("age"));
- assertEquals(column, schema2.getColumnByFQN("test1.age"));
+ assertEquals(column, schema2.getColumn("age"));
+ assertEquals(column, schema2.getColumn("test1.age"));
Schema schema3 = new Schema();
schema3.addColumn("tb1.col1", Type.INT4);
schema3.addColumn("col2", Type.INT4);
assertEquals("tb1", schema3.getColumn(0).getQualifier());
assertEquals("tb1.col1", schema3.getColumn(0).getQualifiedName());
- assertEquals("col1", schema3.getColumn(0).getColumnName());
+ assertEquals("col1", schema3.getColumn(0).getSimpleName());
assertEquals("col2", schema3.getColumn(1).getQualifiedName());
- assertEquals(schema3.getColumn(0), schema3.getColumnByName("col1"));
- assertEquals(schema3.getColumn(0), schema3.getColumnByFQN("tb1.col1"));
- assertEquals(schema3.getColumn(1), schema3.getColumnByName("col2"));
- assertEquals(schema3.getColumn(1), schema3.getColumnByFQN("col2"));
+ assertEquals(schema3.getColumn(0), schema3.getColumn("col1"));
+ assertEquals(schema3.getColumn(0), schema3.getColumn("tb1.col1"));
+ assertEquals(schema3.getColumn(1), schema3.getColumn("col2"));
+ assertEquals(schema3.getColumn(1), schema3.getColumn("col2"));
schema3.setQualifier("tb2");
assertEquals("tb2", schema3.getColumn(0).getQualifier());
assertEquals("tb2.col1", schema3.getColumn(0).getQualifiedName());
- assertEquals("col1", schema3.getColumn(0).getColumnName());
+ assertEquals("col1", schema3.getColumn(0).getSimpleName());
assertEquals("tb2.col2", schema3.getColumn(1).getQualifiedName());
- assertEquals(schema3.getColumn(0), schema3.getColumnByName("col1"));
- assertEquals(schema3.getColumn(0), schema3.getColumnByFQN("tb2.col1"));
- assertEquals(schema3.getColumn(1), schema3.getColumnByName("col2"));
- assertEquals(schema3.getColumn(1), schema3.getColumnByFQN("tb2.col2"));
+ assertEquals(schema3.getColumn(0), schema3.getColumn("col1"));
+ assertEquals(schema3.getColumn(0), schema3.getColumn("tb2.col1"));
+ assertEquals(schema3.getColumn(1), schema3.getColumn("col2"));
+ assertEquals(schema3.getColumn(1), schema3.getColumn("tb2.col2"));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java
index bc43f2c..3dc0908 100644
--- a/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java
+++ b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogStore.java
@@ -320,7 +320,7 @@ public class HCatalogStore extends CatalogConstants implements CatalogStore {
ArrayList<FieldSchema> cols = new ArrayList<FieldSchema>(tableDesc.getSchema().getFieldsCount());
for (CatalogProtos.ColumnProto col : tableDesc.getSchema().getFieldsList()) {
cols.add(new FieldSchema(
- col.getColumnName(),
+ col.getName(),
HCatalogUtil.getHiveFieldType(col.getDataType().getType().name()),
""));
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java
index 1abf022..82a334b 100644
--- a/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java
+++ b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/test/java/org/apache/tajo/catalog/store/TestHCatalogStore.java
@@ -253,21 +253,21 @@ public class TestHCatalogStore {
List<Column> columns = table.getSchema().getColumns();
assertEquals(DB_NAME + "." + CUSTOMER, table.getName());
assertEquals(8, columns.size());
- assertEquals("c_custkey", columns.get(0).getColumnName());
+ assertEquals("c_custkey", columns.get(0).getSimpleName());
assertEquals(TajoDataTypes.Type.INT4, columns.get(0).getDataType().getType());
- assertEquals("c_name", columns.get(1).getColumnName());
+ assertEquals("c_name", columns.get(1).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(1).getDataType().getType());
- assertEquals("c_address", columns.get(2).getColumnName());
+ assertEquals("c_address", columns.get(2).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(2).getDataType().getType());
- assertEquals("c_nationkey", columns.get(3).getColumnName());
+ assertEquals("c_nationkey", columns.get(3).getSimpleName());
assertEquals(TajoDataTypes.Type.INT4, columns.get(3).getDataType().getType());
- assertEquals("c_phone", columns.get(4).getColumnName());
+ assertEquals("c_phone", columns.get(4).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(4).getDataType().getType());
- assertEquals("c_acctbal", columns.get(5).getColumnName());
+ assertEquals("c_acctbal", columns.get(5).getSimpleName());
assertEquals(TajoDataTypes.Type.FLOAT8, columns.get(5).getDataType().getType());
- assertEquals("c_mktsegment", columns.get(6).getColumnName());
+ assertEquals("c_mktsegment", columns.get(6).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(6).getDataType().getType());
- assertEquals("c_comment", columns.get(7).getColumnName());
+ assertEquals("c_comment", columns.get(7).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(7).getDataType().getType());
assertNull(table.getPartitionMethod());
assertEquals(table.getMeta().getStoreType().name(), CatalogProtos.StoreType.RCFILE.name());
@@ -277,16 +277,16 @@ public class TestHCatalogStore {
columns = table.getSchema().getColumns();
assertEquals(DB_NAME + "." + NATION, table.getName());
assertEquals(4, columns.size());
- assertEquals("n_nationkey", columns.get(0).getColumnName());
+ assertEquals("n_nationkey", columns.get(0).getSimpleName());
assertEquals(TajoDataTypes.Type.INT4, columns.get(0).getDataType().getType());
- assertEquals("n_name", columns.get(1).getColumnName());
+ assertEquals("n_name", columns.get(1).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(1).getDataType().getType());
- assertEquals("n_regionkey", columns.get(2).getColumnName());
+ assertEquals("n_regionkey", columns.get(2).getSimpleName());
assertEquals(TajoDataTypes.Type.INT4, columns.get(2).getDataType().getType());
- assertEquals("n_comment", columns.get(3).getColumnName());
+ assertEquals("n_comment", columns.get(3).getSimpleName());
assertEquals(TajoDataTypes.Type.TEXT, columns.get(3).getDataType().getType());
assertNotNull(table.getPartitionMethod());
- assertEquals("type", table.getPartitionMethod().getExpressionSchema().getColumn(0).getColumnName());
+ assertEquals("type", table.getPartitionMethod().getExpressionSchema().getColumn(0).getSimpleName());
assertEquals(CatalogProtos.PartitionType.COLUMN, table.getPartitionMethod().getPartitionType());
assertEquals(table.getMeta().getOption(HCatalogStore.CVSFILE_DELIMITER), "\\001");
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/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 ae8a7d1..8c2c0c3 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
@@ -311,7 +311,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
pstmt.setInt(1, tid);
pstmt.setString(2, tableName);
pstmt.setInt(3, i);
- pstmt.setString(4, col.getColumnName());
+ pstmt.setString(4, CatalogUtil.extractSimpleName(col.getName()));
pstmt.setString(5, col.getDataType().getType().name());
pstmt.setInt(6, (col.getDataType().hasLength() ? col.getDataType().getLength() : 0));
pstmt.addBatch();
@@ -1047,7 +1047,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
sql.append("INSERT INTO indexes (index_name, ");
sql.append(C_TABLE_ID);
sql.append(", column_name, ");
- sql.append( "data_type, index_type, is_unique, is_clustered, is_ascending) VALUES ");
+ sql.append("data_type, index_type, is_unique, is_clustered, is_ascending) VALUES ");
sql.append("(?,?,?,?,?,?,?,?)");
if (LOG.isDebugEnabled()) {
@@ -1059,7 +1059,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
pstmt.setString(1, proto.getName());
pstmt.setString(2, proto.getTableId());
- pstmt.setString(3, proto.getColumn().getColumnName());
+ pstmt.setString(3, CatalogUtil.extractSimpleName(proto.getColumn().getName()));
pstmt.setString(4, proto.getColumn().getDataType().getType().name());
pstmt.setString(5, proto.getIndexMethod().toString());
pstmt.setBoolean(6, proto.hasIsUnique() && proto.getIsUnique());
@@ -1306,7 +1306,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
*/
private ColumnProto indexResultToColumnProto(final ResultSet res) throws SQLException {
ColumnProto.Builder builder = ColumnProto.newBuilder();
- builder.setColumnName(res.getString("column_name").trim());
+ builder.setName(res.getString("column_name").trim());
Type type = getDataType(res.getString("data_type").trim());
builder.setDataType(CatalogUtil.newSimpleDataType(type));
@@ -1316,7 +1316,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
private ColumnProto resultToColumnProto(final ResultSet res) throws SQLException {
ColumnProto.Builder builder = ColumnProto.newBuilder();
- builder.setColumnName(res.getString("column_name").trim());
+ builder.setName(res.getString("column_name").trim());
Type type = getDataType(res.getString("data_type").trim());
int typeLength = res.getInt("type_length");
@@ -1340,24 +1340,6 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
return setBuilder.build();
}
- private ColumnProto resultToQualifiedColumnProto(String tableName, final ResultSet res) throws SQLException {
- ColumnProto.Builder builder = ColumnProto.newBuilder();
-
- String columnName = tableName + "."
- + res.getString("column_name").trim();
- builder.setColumnName(columnName);
-
- Type type = getDataType(res.getString("data_type").trim());
- int typeLength = res.getInt("type_length");
- if(typeLength > 0 ) {
- builder.setDataType(CatalogUtil.newDataTypeWithLen(type, typeLength));
- } else {
- builder.setDataType(CatalogUtil.newSimpleDataType(type));
- }
-
- return builder.build();
- }
-
private IndexMethod getIndexMethod(final String typeStr) {
if (typeStr.equals(IndexMethod.TWO_LEVEL_BIN_TREE.toString())) {
return IndexMethod.TWO_LEVEL_BIN_TREE;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
index e05e0ae..1fef286 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/MemStore.java
@@ -172,7 +172,7 @@ public class MemStore implements CatalogStore {
synchronized(indexes) {
indexes.put(proto.getName(), proto);
indexesByColumn.put(proto.getTableId() + "."
- + proto.getColumn().getColumnName(), proto);
+ + CatalogUtil.extractSimpleName(proto.getColumn().getName()), proto);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/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 441ffe5..08905dd 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
@@ -276,7 +276,7 @@ public class TestCatalog {
assertEquals(retrieved.getName(), tableName);
assertEquals(retrieved.getPartitionMethod().getPartitionType(), CatalogProtos.PartitionType.HASH);
- assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getColumnName(), "id");
+ assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getSimpleName(), "id");
catalog.deleteTable(tableName);
assertFalse(catalog.existsTable(tableName));
@@ -315,7 +315,7 @@ public class TestCatalog {
assertEquals(retrieved.getName(), tableName);
assertEquals(retrieved.getPartitionMethod().getPartitionType(), CatalogProtos.PartitionType.HASH);
- assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getColumnName(), "id");
+ assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getSimpleName(), "id");
catalog.deleteTable(tableName);
assertFalse(catalog.existsTable(tableName));
@@ -352,7 +352,7 @@ public class TestCatalog {
assertEquals(retrieved.getName(), tableName);
assertEquals(retrieved.getPartitionMethod().getPartitionType(), CatalogProtos.PartitionType.LIST);
- assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getColumnName(), "id");
+ assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getSimpleName(), "id");
catalog.deleteTable(tableName);
assertFalse(catalog.existsTable(tableName));
@@ -390,7 +390,7 @@ public class TestCatalog {
assertEquals(retrieved.getName(), tableName);
assertEquals(retrieved.getPartitionMethod().getPartitionType(), CatalogProtos.PartitionType.RANGE);
- assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getColumnName(), "id");
+ assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getSimpleName(), "id");
catalog.deleteTable(tableName);
assertFalse(catalog.existsTable(tableName));
@@ -427,7 +427,7 @@ public class TestCatalog {
assertEquals(retrieved.getName(), tableName);
assertEquals(retrieved.getPartitionMethod().getPartitionType(), CatalogProtos.PartitionType.COLUMN);
- assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getColumnName(), "id");
+ assertEquals(retrieved.getPartitionMethod().getExpressionSchema().getColumn(0).getSimpleName(), "id");
catalog.deleteTable(tableName);
assertFalse(catalog.existsTable(tableName));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java
index 502daf0..a6b5b9a 100644
--- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestDBStore.java
@@ -213,12 +213,12 @@ public class TestDBStore {
public static void assertSchemaOrder(Schema s1, Schema s2) {
// Schema order check
- assertEquals(s1.getColumnNum(),
- s2.getColumnNum());
+ assertEquals(s1.size(),
+ s2.size());
- for (int i = 0; i < s1.getColumnNum(); i++) {
- assertEquals(s1.getColumn(i).getColumnName(),
- s2.getColumn(i).getColumnName());
+ for (int i = 0; i < s1.size(); i++) {
+ assertEquals(s1.getColumn(i).getSimpleName(),
+ s2.getColumn(i).getSimpleName());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java b/tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java
index 8bf00e1..bdeb173 100644
--- a/tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java
+++ b/tajo-client/src/main/java/org/apache/tajo/cli/DescTableCommand.java
@@ -90,9 +90,9 @@ public class DescTableCommand extends TajoShellCommand {
sb.append("\n");
sb.append("schema: \n");
- for(int i = 0; i < desc.getSchema().getColumnNum(); i++) {
+ for(int i = 0; i < desc.getSchema().size(); i++) {
Column col = desc.getSchema().getColumn(i);
- sb.append(col.getColumnName()).append("\t").append(col.getDataType().getType());
+ sb.append(col.getSimpleName()).append("\t").append(col.getDataType().getType());
if (col.getDataType().hasLength()) {
sb.append("(").append(col.getDataType().getLength()).append(")");
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java
----------------------------------------------------------------------
diff --git a/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java b/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java
index 98df048..4f2e586 100644
--- a/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java
+++ b/tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetMetaData.java
@@ -62,7 +62,7 @@ public class TajoResultSetMetaData implements ResultSetMetaData {
if(schema == null) {
return 0;
}
- return schema.getColumnNum();
+ return schema.size();
}
@Override
@@ -77,7 +77,7 @@ public class TajoResultSetMetaData implements ResultSetMetaData {
@Override
public String getColumnName(int column) throws SQLException {
- return schema.getColumn(column - 1).getColumnName();
+ return schema.getColumn(column - 1).getSimpleName();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java b/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
index 8cdc7bb..d4ce48f 100644
--- a/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
+++ b/tajo-common/src/main/java/org/apache/tajo/TajoConstants.java
@@ -27,5 +27,7 @@ public class TajoConstants {
public static final String SYSTEM_RESOURCE_DIR_NAME = "resource";
public static final String RESULT_DIR_NAME="RESULT";
+ public static final String EMPTY_STRING = "";
+
private TajoConstants() {}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalTreeUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalTreeUtil.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalTreeUtil.java
index 5f1035d..1e2298c 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalTreeUtil.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalTreeUtil.java
@@ -116,7 +116,7 @@ public class EvalTreeUtil {
case FIELD:
FieldEval fieldEval = (FieldEval) expr;
- return inputSchema.getColumnByFQN(fieldEval.getName()).getDataType();
+ return inputSchema.getColumn(fieldEval.getName()).getDataType();
default:
@@ -180,7 +180,7 @@ public class EvalTreeUtil {
switch (expr.getType()) {
case FIELD:
FieldEval field = (FieldEval) expr;
- if (field.getColumnName().equals(target.getColumnName())) {
+ if (field.getColumnName().equals(target.getSimpleName())) {
exprSet.add(field);
}
break;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
index dc9b35b..504023a 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/FieldEval.java
@@ -64,11 +64,11 @@ public class FieldEval extends EvalNode implements Cloneable {
}
public String getColumnName() {
- return column.getColumnName();
+ return column.getSimpleName();
}
public void replaceColumnRef(String columnName) {
- this.column.setName(columnName);
+ this.column = new Column(columnName, this.column.getDataType());
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java
index 47bd166..5491fef 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java
@@ -22,6 +22,7 @@ import com.google.common.collect.Lists;
import org.apache.commons.lang.ObjectUtils;
import org.apache.tajo.algebra.*;
import org.apache.tajo.annotation.NotThreadSafe;
+import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Column;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.engine.eval.EvalNode;
@@ -241,7 +242,7 @@ public class LogicalPlan {
}
Schema schema = relationOp.getTableSchema();
- Column column = schema.getColumnByFQN(columnRef.getCanonicalName());
+ Column column = schema.getColumn(columnRef.getCanonicalName());
if (column == null) {
throw new NoSuchColumnException(columnRef.getCanonicalName());
}
@@ -283,7 +284,7 @@ public class LogicalPlan {
}
if (block.getLatestNode() != null) {
- Column found = block.getLatestNode().getOutSchema().getColumnByName(columnRef.getName());
+ Column found = block.getLatestNode().getOutSchema().getColumn(columnRef.getName());
if (found != null) {
return found;
}
@@ -304,7 +305,7 @@ public class LogicalPlan {
// Trying to find columns from other relations in the current block
for (RelationNode rel : block.getRelations()) {
- Column found = rel.getTableSchema().getColumnByName(columnRef.getName());
+ Column found = rel.getTableSchema().getColumn(columnRef.getName());
if (found != null) {
candidates.add(found);
}
@@ -317,7 +318,7 @@ public class LogicalPlan {
// Trying to find columns from other relations in other blocks
for (QueryBlock eachBlock : queryBlocks.values()) {
for (RelationNode rel : eachBlock.getRelations()) {
- Column found = rel.getTableSchema().getColumnByName(columnRef.getName());
+ Column found = rel.getTableSchema().getColumn(columnRef.getName());
if (found != null) {
candidates.add(found);
}
@@ -330,7 +331,7 @@ public class LogicalPlan {
// Trying to find columns from schema in current block.
if (block.getSchema() != null) {
- Column found = block.getSchema().getColumnByName(columnRef.getName());
+ Column found = block.getSchema().getColumn(columnRef.getName());
if (found != null) {
candidates.add(found);
}
@@ -528,15 +529,15 @@ public class LogicalPlan {
}
public boolean existsRelation(String name) {
- return nameToRelationMap.containsKey(PlannerUtil.normalizeTableName(name));
+ return nameToRelationMap.containsKey(CatalogUtil.normalizeIdentifier(name));
}
public RelationNode getRelation(String name) {
- return nameToRelationMap.get(PlannerUtil.normalizeTableName(name));
+ return nameToRelationMap.get(CatalogUtil.normalizeIdentifier(name));
}
public void addRelation(RelationNode relation) {
- nameToRelationMap.put(PlannerUtil.normalizeTableName(relation.getCanonicalName()), relation);
+ nameToRelationMap.put(CatalogUtil.normalizeIdentifier(relation.getCanonicalName()), relation);
}
public Collection<RelationNode> getRelations() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java
index a6bedcf..818e01c 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java
@@ -32,11 +32,7 @@ import org.apache.tajo.engine.planner.logical.*;
import org.apache.tajo.engine.utils.SchemaUtil;
import org.apache.tajo.util.TUtil;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Stack;
+import java.util.*;
/**
* It finds all relations for each block and builds base schema information.
@@ -116,7 +112,7 @@ class LogicalPlanPreprocessor extends BaseAlgebraVisitor<LogicalPlanPreprocessor
}
Schema schema = relationOp.getTableSchema();
- Column[] resolvedColumns = new Column[schema.getColumnNum()];
+ Column[] resolvedColumns = new Column[schema.size()];
return schema.getColumns().toArray(resolvedColumns);
} else { // if a column reference is not qualified
// columns of every relation should be resolved.
@@ -151,7 +147,7 @@ class LogicalPlanPreprocessor extends BaseAlgebraVisitor<LogicalPlanPreprocessor
List<NamedExpr> newTargetExprs = new ArrayList<NamedExpr>(columns.length);
int i;
for (i = 0; i < columns.length; i++) {
- newTargetExprs.add(new NamedExpr(new ColumnReferenceExpr(columns[i].getQualifier(), columns[i].getColumnName())));
+ newTargetExprs.add(new NamedExpr(new ColumnReferenceExpr(columns[i].getQualifier(), columns[i].getSimpleName())));
}
return newTargetExprs;
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
index 6800519..305548c 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
@@ -44,18 +44,18 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<VerificationSta
Schema outputSchema = node.getOutSchema();
Schema targetSchema = PlannerUtil.targetToSchema(node.getTargets());
- if (outputSchema.getColumnNum() != node.getTargets().length) {
+ if (outputSchema.size() != node.getTargets().length) {
throw new PlanningException(String.format("Output schema and Target's schema are mismatched at Node (%d)",
+ node.getPID()));
}
- for (int i = 0; i < outputSchema.getColumnNum(); i++) {
+ for (int i = 0; i < outputSchema.size(); i++) {
if (!outputSchema.getColumn(i).getDataType().equals(targetSchema.getColumn(i).getDataType())) {
Column targetColumn = targetSchema.getColumn(i);
Column insertColumn = outputSchema.getColumn(i);
throw new PlanningException("ERROR: " +
- insertColumn.getColumnName() + " is of type " + insertColumn.getDataType().getType().name() +
- ", but target column '" + targetColumn.getColumnName() + "' is of type " +
+ insertColumn.getSimpleName() + " is of type " + insertColumn.getDataType().getType().name() +
+ ", but target column '" + targetColumn.getSimpleName() + "' is of type " +
targetColumn.getDataType().getType().name());
}
}
@@ -126,7 +126,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<VerificationSta
Schema right = setNode.getRightChild().getOutSchema();
NodeType type = setNode.getType();
- if (left.getColumnNum() != right.getColumnNum()) {
+ if (left.size() != right.size()) {
state.addVerification("each " + type.name() + " query must have the same number of columns");
return;
}
@@ -203,13 +203,13 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<VerificationSta
*/
private static void ensureDomains(VerificationState state, Schema targetTableScheme, Schema schema)
throws PlanningException {
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
if (!schema.getColumn(i).getDataType().equals(targetTableScheme.getColumn(i).getDataType())) {
Column targetColumn = targetTableScheme.getColumn(i);
Column insertColumn = schema.getColumn(i);
state.addVerification("ERROR: " +
- insertColumn.getColumnName() + " is of type " + insertColumn.getDataType().getType().name() +
- ", but target column '" + targetColumn.getColumnName() + "' is of type " +
+ insertColumn.getSimpleName() + " is of type " + insertColumn.getDataType().getType().name() +
+ ", but target column '" + targetColumn.getSimpleName() + "' is of type " +
targetColumn.getDataType().getType().name());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java
index e5e84a7..2a4e151 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java
@@ -857,8 +857,8 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex
Column rightJoinKey;
for (Column common : commons.getColumns()) {
- leftJoinKey = leftSchema.getColumnByName(common.getColumnName());
- rightJoinKey = rightSchema.getColumnByName(common.getColumnName());
+ leftJoinKey = leftSchema.getColumn(common.getQualifiedName());
+ rightJoinKey = rightSchema.getColumn(common.getQualifiedName());
equiQual = new BinaryEval(EvalType.EQUAL,
new FieldEval(leftJoinKey), new FieldEval(rightJoinKey));
if (njQual == null) {
@@ -1177,7 +1177,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex
if (expr.hasTargetColumns()) { // when a user specified target columns
- if (expr.getTargetColumns().length > insertNode.getChild().getOutSchema().getColumnNum()) {
+ if (expr.getTargetColumns().length > insertNode.getChild().getOutSchema().size()) {
throw new PlanningException("Target columns and projected columns are mismatched to each other");
}
@@ -1202,7 +1202,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex
Schema projectedSchema = insertNode.getChild().getOutSchema();
Schema targetColumns = new Schema();
- for (int i = 0; i < projectedSchema.getColumnNum(); i++) {
+ for (int i = 0; i < projectedSchema.size(); i++) {
targetColumns.addColumn(tableSchema.getColumn(i));
}
insertNode.setTargetSchema(targetColumns);
@@ -1224,13 +1224,13 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex
// Modifying projected columns by adding NULL constants
// It is because that table appender does not support target columns to be written.
List<Target> targets = TUtil.newList();
- for (int i = 0, j = 0; i < tableSchema.getColumnNum(); i++) {
+ for (int i = 0, j = 0; i < tableSchema.size(); i++) {
Column column = tableSchema.getColumn(i);
if(targetColumns.contains(column) && j < projectionNode.getTargets().length) {
targets.add(projectionNode.getTargets()[j++]);
} else {
- targets.add(new Target(new ConstEval(NullDatum.get()), column.getColumnName()));
+ targets.add(new Target(new ConstEval(NullDatum.get()), column.getSimpleName()));
}
}
projectionNode.setTargets(targets.toArray(new Target[targets.size()]));
@@ -1321,11 +1321,11 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex
Schema queryOutputSchema = subQuery.getOutSchema();
Schema partitionExpressionSchema = partitionMethod.getExpressionSchema();
if (partitionMethod.getPartitionType() == CatalogProtos.PartitionType.COLUMN &&
- queryOutputSchema.getColumnNum() < partitionExpressionSchema.getColumnNum()) {
+ queryOutputSchema.size() < partitionExpressionSchema.size()) {
throw new VerifyException("Partition columns cannot be more than table columns.");
}
Schema tableSchema = new Schema();
- for (int i = 0; i < queryOutputSchema.getColumnNum() - partitionExpressionSchema.getColumnNum(); i++) {
+ for (int i = 0; i < queryOutputSchema.size() - partitionExpressionSchema.size(); i++) {
tableSchema.addColumn(queryOutputSchema.getColumn(i));
}
createTableNode.setOutSchema(tableSchema);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
index 8017331..4f1421b 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
@@ -41,9 +41,6 @@ import org.apache.tajo.util.TUtil;
import java.util.*;
public class PlannerUtil {
- public static String normalizeTableName(String tableName) {
- return tableName.toLowerCase();
- }
public static boolean checkIfDDLPlan(LogicalNode node) {
LogicalNode baseNode = node;
@@ -334,82 +331,6 @@ public class PlannerUtil {
return (T) finder.getFoundNodes().get(0);
}
- public static boolean canBeEvaluated(EvalNode eval, LogicalNode node) {
- Set<Column> columnRefs = EvalTreeUtil.findUniqueColumns(eval);
-
- if (node.getType() == NodeType.JOIN) {
- JoinNode joinNode = (JoinNode) node;
- Set<String> tableIds = Sets.newHashSet();
- // getting distinct table references
- for (Column col : columnRefs) {
- if (!tableIds.contains(col.getQualifier())) {
- tableIds.add(col.getQualifier());
- }
- }
-
- // if the references only indicate two relation, the condition can be
- // pushed into a join operator.
- if (tableIds.size() != 2) {
- return false;
- }
-
- String [] outer = getRelationLineage(joinNode.getLeftChild());
- String [] inner = getRelationLineage(joinNode.getRightChild());
-
- Set<String> o = Sets.newHashSet(outer);
- Set<String> i = Sets.newHashSet(inner);
- if (outer == null || inner == null) {
- throw new InvalidQueryException("ERROR: Unexpected logical plan");
- }
- Iterator<String> it = tableIds.iterator();
- if (o.contains(it.next()) && i.contains(it.next())) {
- return true;
- }
-
- it = tableIds.iterator();
-
- return i.contains(it.next()) && o.contains(it.next());
-
- } else if (node instanceof ScanNode) {
-
- RelationNode scan = (RelationNode) node;
-
- for (Column col : columnRefs) {
- if (scan.getCanonicalName().equals(col.getQualifier())) {
- Column found = scan.getTableSchema().getColumnByName(col.getColumnName());
- if (found == null) {
- return false;
- }
- } else {
- return false;
- }
- }
-
- } else if (node instanceof TableSubQueryNode) {
- TableSubQueryNode subQueryNode = (TableSubQueryNode) node;
- for (Column col : columnRefs) {
- if (subQueryNode.getCanonicalName().equals(col.getQualifier())) {
- Column found = node.getOutSchema().getColumnByName(col.getColumnName());
- if (found == null) {
- return false;
- }
- } else {
- return false;
- }
- }
-
- } else {
-
- for (Column col : columnRefs) {
- if (!node.getInSchema().containsByQualifiedName(col.getQualifiedName())) {
- return false;
- }
- }
- }
-
- return true;
- }
-
private static class LogicalNodeFinder implements LogicalNodeVisitor {
private List<LogicalNode> list = new ArrayList<LogicalNode>();
private final NodeType[] tofind;
@@ -485,17 +406,17 @@ public class PlannerUtil {
*/
public static void schemaToTargets(Schema schema, Target [] targets) {
FieldEval eval;
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
eval = new FieldEval(schema.getColumn(i));
targets[i] = new Target(eval);
}
}
public static Target[] schemaToTargets(Schema schema) {
- Target[] targets = new Target[schema.getColumnNum()];
+ Target[] targets = new Target[schema.size()];
FieldEval eval;
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
eval = new FieldEval(schema.getColumn(i));
targets[i] = new Target(eval);
}
@@ -506,7 +427,7 @@ public class PlannerUtil {
List<Target> targets = TUtil.newList();
FieldEval eval;
- for (int i = 0; i < schema.getColumnNum(); i++) {
+ for (int i = 0; i < schema.size(); i++) {
eval = new FieldEval(schema.getColumn(i));
targets.add(new Target(eval));
}
@@ -683,7 +604,7 @@ public class PlannerUtil {
if (copy[i].getEvalTree().getType() == EvalType.FIELD) {
FieldEval fieldEval = copy[i].getEvalTree();
if (fieldEval.getColumnRef().hasQualifier()) {
- fieldEval.getColumnRef().setName(fieldEval.getColumnName());
+ fieldEval.replaceColumnRef(fieldEval.getColumnName());
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/enforce/Enforcer.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/enforce/Enforcer.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/enforce/Enforcer.java
index da8cb01..91190f6 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/enforce/Enforcer.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/enforce/Enforcer.java
@@ -213,7 +213,7 @@ public class Enforcer implements ProtoObject<EnforcerProto> {
} else {
sb.append(", ");
}
- sb.append(sortSpec.getColumn().getColumnName());
+ sb.append(sortSpec.getColumn().getName());
sb.append(" (").append(sortSpec.getAscending() ? "asc":"desc").append(")");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
index 15aa00f..258a2e7 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
@@ -847,7 +847,7 @@ public class GlobalPlanner {
if (node.getType() == NodeType.INSERT) {
InsertNode insertNode = (InsertNode) node;
channel.setSchema(((InsertNode)node).getProjectedSchema());
- Column [] shuffleKeys = new Column[partitionMethod.getExpressionSchema().getColumnNum()];
+ Column [] shuffleKeys = new Column[partitionMethod.getExpressionSchema().size()];
int i = 0;
for (Column column : partitionMethod.getExpressionSchema().getColumns()) {
int id = insertNode.getTableSchema().getColumnId(column.getQualifiedName());
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
index a7f36ec..38ca29b 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java
@@ -171,7 +171,7 @@ public class GroupbyNode extends UnaryNode implements Projectable, Cloneable {
sb.append("(");
Column [] groupingColumns = this.groupingColumns;
for (int j = 0; j < groupingColumns.length; j++) {
- sb.append(groupingColumns[j].getColumnName());
+ sb.append(groupingColumns[j].getSimpleName());
if(j < groupingColumns.length - 1) {
sb.append(",");
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java
index aa91090..0ec8110 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.planner.logical;
import com.google.common.base.Objects;
import com.google.gson.annotations.Expose;
+import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.engine.eval.EvalNode;
@@ -51,7 +52,7 @@ public class ScanNode extends RelationNode implements Projectable {
public ScanNode(int pid, TableDesc desc, String alias) {
this(pid, desc);
- this.alias = PlannerUtil.normalizeTableName(alias);
+ this.alias = CatalogUtil.normalizeIdentifier(alias);
this.setInSchema(tableDesc.getSchema());
this.getInSchema().setQualifier(alias);
this.setOutSchema(new Schema(getInSchema()));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java
index 8154016..a732710 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java
@@ -65,7 +65,7 @@ public final class SortNode extends UnaryNode implements Cloneable {
PlanString planStr = new PlanString(this);
StringBuilder sb = new StringBuilder("Sort Keys: ");
for (int i = 0; i < sortKeys.length; i++) {
- sb.append(sortKeys[i].getSortKey().getColumnName()).append(" ")
+ sb.append(sortKeys[i].getSortKey().getSimpleName()).append(" ")
.append(sortKeys[i].isAscending() ? "asc" : "desc");
if( i < sortKeys.length - 1) {
sb.append(",");
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java
index e205454..3f251f8 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java
@@ -20,6 +20,7 @@ package org.apache.tajo.engine.planner.logical;
import com.google.common.base.Objects;
import com.google.gson.annotations.Expose;
+import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.engine.planner.PlanString;
import org.apache.tajo.engine.planner.PlannerUtil;
@@ -34,7 +35,7 @@ public class TableSubQueryNode extends RelationNode implements Projectable {
public TableSubQueryNode(int pid, String tableName, LogicalNode subQuery) {
super(pid, NodeType.TABLE_SUBQUERY);
- this.tableName = PlannerUtil.normalizeTableName(tableName);
+ this.tableName = CatalogUtil.normalizeIdentifier(tableName);
if (subQuery != null) {
this.subQuery = subQuery;
setOutSchema(SchemaUtil.clone(this.subQuery.getOutSchema()));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java
index 9d66dd5..b4f4d9d 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/join/JoinGraph.java
@@ -51,8 +51,8 @@ public class JoinGraph extends SimpleUndirectedGraph<String, JoinEdge> {
if (leftExpr.hasQualifier()) {
relationNames[0] = leftExpr.getQualifier();
} else {
- if (namedExprsMgr.isAliasedName(leftExpr.getColumnName())) {
- String columnName = namedExprsMgr.getOriginalName(leftExpr.getColumnName());
+ if (namedExprsMgr.isAliasedName(leftExpr.getSimpleName())) {
+ String columnName = namedExprsMgr.getOriginalName(leftExpr.getSimpleName());
String [] parts = columnName.split("\\.");
if (parts.length != 2) {
@@ -68,8 +68,8 @@ public class JoinGraph extends SimpleUndirectedGraph<String, JoinEdge> {
if (rightExpr.hasQualifier()) {
relationNames[1] = rightExpr.getQualifier();
} else {
- if (namedExprsMgr.isAliasedName(rightExpr.getColumnName())) {
- String columnName = namedExprsMgr.getOriginalName(rightExpr.getColumnName());
+ if (namedExprsMgr.isAliasedName(rightExpr.getSimpleName())) {
+ String columnName = namedExprsMgr.getOriginalName(rightExpr.getSimpleName());
String [] parts = columnName.split("\\.");
if (parts.length != 2) {
throw new PlanningException("Cannot expect a referenced relation: " + leftExpr);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
index 71581e3..60a7c19 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
@@ -83,7 +83,7 @@ public class BNLJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outputTuple = new VTuple(outSchema.getColumnNum());
+ outputTuple = new VTuple(outSchema.size());
}
public JoinNode getPlan() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
index 753dcc8..d2f0922 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
@@ -98,7 +98,7 @@ public class BSTIndexScanExec extends PhysicalExec {
}
}
Tuple tuple;
- Tuple outTuple = new VTuple(this.outSchema.getColumnNum());
+ Tuple outTuple = new VTuple(this.outSchema.size());
if (!scanNode.hasQual()) {
if ((tuple = fileScanner.next()) != null) {
projector.eval(tuple, outTuple);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
index c81f3bd..2ec0315 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
@@ -58,13 +58,13 @@ public abstract class ColPartitionStoreExec extends UnaryPhysicalExec {
}
// Find column index to name subpartition directory path
- keyNum = this.plan.getPartitionMethod().getExpressionSchema().getColumnNum();
+ keyNum = this.plan.getPartitionMethod().getExpressionSchema().size();
keyIds = new int[keyNum];
keyNames = new String[keyNum];
for (int i = 0; i < keyNum; i++) {
Column column = this.plan.getPartitionMethod().getExpressionSchema().getColumn(i);
- keyNames[i] = column.getColumnName();
+ keyNames[i] = column.getSimpleName();
if (this.plan.getType() == NodeType.INSERT) {
InsertNode insertNode = ((InsertNode)plan);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java
index 1f8d000..a31ad90 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashAggregateExec.java
@@ -42,7 +42,7 @@ public class HashAggregateExec extends AggregationExec {
public HashAggregateExec(TaskAttemptContext ctx, GroupbyNode plan, PhysicalExec subOp) throws IOException {
super(ctx, plan, subOp);
hashTable = new HashMap<Tuple, FunctionContext []>(100000);
- this.tuple = new VTuple(plan.getOutSchema().getColumnNum());
+ this.tuple = new VTuple(plan.getOutSchema().size());
}
private void compute() throws IOException {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
index 70dd10b..3875b6d 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
@@ -94,11 +94,11 @@ public class HashFullOuterJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
- leftNumCols = outer.getSchema().getColumnNum();
- rightNumCols = inner.getSchema().getColumnNum();
+ leftNumCols = outer.getSchema().size();
+ rightNumCols = inner.getSchema().size();
}
protected void getKeyLeftTuple(final Tuple outerTuple, Tuple keyTuple) {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
index 51d0b4c..9f576a7 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
@@ -84,7 +84,7 @@ public class HashJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
index 93383a3..9afe8e6 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
@@ -90,10 +90,10 @@ public class HashLeftOuterJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
leftKeyTuple = new VTuple(leftKeyList.length);
- rightNumCols = rightChild.getSchema().getColumnNum();
+ rightNumCols = rightChild.getSchema().size();
}
protected void getKeyLeftTuple(final Tuple outerTuple, Tuple keyTuple) {
[2/3] TAJO-610: Refactor Column class.
Posted by hy...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
index 613e072..ff1f7b3 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
@@ -92,10 +92,10 @@ public class MergeFullOuterJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
- leftNumCols = leftChild.getSchema().getColumnNum();
- rightNumCols = rightChild.getSchema().getColumnNum();
+ leftNumCols = leftChild.getSchema().size();
+ rightNumCols = rightChild.getSchema().size();
}
public JoinNode getPlan(){
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
index f72e87e..470e1c9 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
@@ -88,7 +88,7 @@ public class MergeJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
}
public JoinNode getPlan(){
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
index 961be93..6e5900e 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
@@ -59,7 +59,7 @@ public class NLJoinExec extends BinaryPhysicalExec {
// for join
needNewOuter = true;
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
}
public JoinNode getPlan() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLLeftOuterJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLLeftOuterJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLLeftOuterJoinExec.java
index 4abe570..5c17c40 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLLeftOuterJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/NLLeftOuterJoinExec.java
@@ -62,10 +62,10 @@ public class NLLeftOuterJoinExec extends BinaryPhysicalExec {
// for join
needNextRightTuple = true;
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
foundAtLeastOneMatch = false;
- rightNumCols = rightChild.getSchema().getColumnNum();
+ rightNumCols = rightChild.getSchema().size();
}
public JoinNode getPlan() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExec.java
index 033dcd9..0b9bc95 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExec.java
@@ -39,7 +39,7 @@ public abstract class PhysicalExec implements SchemaObject {
this.context = context;
this.inSchema = inSchema;
this.outSchema = outSchema;
- this.outColumnNum = outSchema.getColumnNum();
+ this.outColumnNum = outSchema.size();
}
public final Schema getSchema() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
index e205751..ee6ef1d 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
@@ -45,7 +45,7 @@ public class ProjectionExec extends UnaryPhysicalExec {
public void init() throws IOException {
super.init();
- this.outTuple = new VTuple(outSchema.getColumnNum());
+ this.outTuple = new VTuple(outSchema.size());
this.projector = new Projector(inSchema, outSchema, this.plan.getTargets());
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
index 698e46e..68379d1 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
@@ -99,7 +99,7 @@ public class RangeShuffleFileWriteExec extends UnaryPhysicalExec {
while((tuple = child.next()) != null) {
offset = appender.getOffset();
appender.addTuple(tuple);
- keyTuple = new VTuple(keySchema.getColumnNum());
+ keyTuple = new VTuple(keySchema.size());
RowStoreUtil.project(tuple, keyTuple, indexKeys);
if (prevKeyTuple == null || !prevKeyTuple.equals(keyTuple)) {
indexWriter.write(keyTuple, offset);
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
index b494544..c70174a 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
@@ -90,9 +90,9 @@ public class RightOuterMergeJoinExec extends BinaryPhysicalExec {
// for join
frameTuple = new FrameTuple();
- outTuple = new VTuple(outSchema.getColumnNum());
+ outTuple = new VTuple(outSchema.size());
- leftNumCols = outer.getSchema().getColumnNum();
+ leftNumCols = outer.getSchema().size();
}
public JoinNode getPlan() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java
index dbe45dc..629889d 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/SortAggregateExec.java
@@ -81,7 +81,7 @@ public class SortAggregateExec extends AggregationExec {
} else { /** Finalization State */
// finalize aggregate and return
- outputTuple = new VTuple(outSchema.getColumnNum());
+ outputTuple = new VTuple(outSchema.size());
int tupleIdx = 0;
for(; tupleIdx < groupingKeyNum; tupleIdx++) {
@@ -102,7 +102,7 @@ public class SortAggregateExec extends AggregationExec {
} // while loop
if (!finished) {
- outputTuple = new VTuple(outSchema.getColumnNum());
+ outputTuple = new VTuple(outSchema.size());
int tupleIdx = 0;
for(; tupleIdx < groupingKeyNum; tupleIdx++) {
outputTuple.put(tupleIdx, lastKey.get(tupleIdx));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java
index faef37d..d701935 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/PartitionedTableRewriter.java
@@ -145,7 +145,7 @@ public class PartitionedTableRewriter implements RewriteRule {
// loop from one to the number of partition columns
Path [] filteredPaths = toPathArray(fs.listStatus(tablePath, filters[0]));
- for (int i = 1; i < partitionColumns.getColumnNum(); i++) {
+ for (int i = 1; i < partitionColumns.size(); i++) {
// Get all file status matched to a ith level path filter.
filteredPaths = toPathArray(fs.listStatus(filteredPaths, filters[i]));
}
@@ -182,9 +182,9 @@ public class PartitionedTableRewriter implements RewriteRule {
EvalNode [] conjunctiveForms) {
// Building partition path filters for all levels
Column target;
- PathFilter [] filters = new PathFilter[partitionColumns.getColumnNum()];
+ PathFilter [] filters = new PathFilter[partitionColumns.size()];
List<EvalNode> accumulatedFilters = Lists.newArrayList();
- for (int i = 0; i < partitionColumns.getColumnNum(); i++) { // loop from one to level
+ for (int i = 0; i < partitionColumns.size(); i++) { // loop from one to level
target = partitionColumns.getColumn(i);
for (EvalNode expr : conjunctiveForms) {
@@ -212,9 +212,9 @@ public class PartitionedTableRewriter implements RewriteRule {
*/
private static PathFilter [] buildAllAcceptingPathFilters(Schema partitionColumns) {
Column target;
- PathFilter [] filters = new PathFilter[partitionColumns.getColumnNum()];
+ PathFilter [] filters = new PathFilter[partitionColumns.size()];
List<EvalNode> accumulatedFilters = Lists.newArrayList();
- for (int i = 0; i < partitionColumns.getColumnNum(); i++) { // loop from one to level
+ for (int i = 0; i < partitionColumns.size(); i++) { // loop from one to level
target = partitionColumns.getColumn(i);
accumulatedFilters.add(new IsNullEval(true, new FieldEval(target)));
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java
index 4a3bf46..1db4c4b 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/query/QueryContext.java
@@ -19,10 +19,10 @@
package org.apache.tajo.engine.query;
import org.apache.hadoop.fs.Path;
+import org.apache.tajo.catalog.CatalogUtil;
import org.apache.tajo.catalog.Options;
import org.apache.tajo.catalog.partition.PartitionMethodDesc;
import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.engine.planner.PlannerUtil;
import org.apache.tajo.engine.planner.logical.NodeType;
import static org.apache.tajo.catalog.proto.CatalogProtos.KeyValueSetProto;
@@ -103,7 +103,7 @@ public class QueryContext extends Options {
* @param tableName The target table name
*/
public void setOutputTable(String tableName) {
- put(OUTPUT_TABLE_NAME, PlannerUtil.normalizeTableName(tableName));
+ put(OUTPUT_TABLE_NAME, CatalogUtil.normalizeIdentifier(tableName));
}
public String getOutputTable() {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/SchemaUtil.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/SchemaUtil.java
index c9ab823..c882607 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/SchemaUtil.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/SchemaUtil.java
@@ -45,8 +45,8 @@ public class SchemaUtil {
public static Schema getNaturalJoinColumns(Schema left, Schema right) {
Schema common = new Schema();
for (Column outer : left.getColumns()) {
- if (!common.containsByName(outer.getColumnName()) && right.containsByName(outer.getColumnName())) {
- common.addColumn(new Column(outer.getColumnName(), outer.getDataType()));
+ if (!common.containsByName(outer.getSimpleName()) && right.containsByName(outer.getSimpleName())) {
+ common.addColumn(new Column(outer.getSimpleName(), outer.getDataType()));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
index b96b65e..6d801dd 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
@@ -80,8 +80,8 @@ public class TupleUtil {
"ERROR: Invalid Column Stats (column stats: " + colStats + ", there exists not target " + col);
}
- Tuple startTuple = new VTuple(target.getColumnNum());
- Tuple endTuple = new VTuple(target.getColumnNum());
+ Tuple startTuple = new VTuple(target.size());
+ Tuple endTuple = new VTuple(target.size());
int i = 0;
for (Column col : target.getColumns()) {
if (sortSpecs[i].isAscending()) {
@@ -173,13 +173,13 @@ public class TupleUtil {
String [] columnValues = columnValuesPart.split("/");
// true means this is a file.
- if (beNullIfFile && partitionColumnSchema.getColumnNum() < columnValues.length) {
+ if (beNullIfFile && partitionColumnSchema.size() < columnValues.length) {
return null;
}
- Tuple tuple = new VTuple(partitionColumnSchema.getColumnNum());
+ Tuple tuple = new VTuple(partitionColumnSchema.size());
int i = 0;
- for (; i < columnValues.length && i < partitionColumnSchema.getColumnNum(); i++) {
+ for (; i < columnValues.length && i < partitionColumnSchema.size(); i++) {
String [] parts = columnValues[i].split("=");
if (parts.length != 2) {
return null;
@@ -188,7 +188,7 @@ public class TupleUtil {
Column keyColumn = partitionColumnSchema.getColumn(columnId);
tuple.put(columnId, DatumFactory.createFromString(keyColumn.getDataType(), parts[1]));
}
- for (; i < partitionColumnSchema.getColumnNum(); i++) {
+ for (; i < partitionColumnSchema.size(); i++) {
tuple.put(i, NullDatum.get());
}
return tuple;
@@ -203,7 +203,7 @@ public class TupleUtil {
*/
private static String getColumnPartitionPathPrefix(Schema partitionColumn) {
StringBuilder sb = new StringBuilder();
- sb.append(partitionColumn.getColumn(0).getColumnName()).append("=");
+ sb.append(partitionColumn.getColumn(0).getSimpleName()).append("=");
return sb.toString();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/IndexUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/IndexUtil.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/IndexUtil.java
index dc77700..8816f8f 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/IndexUtil.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/IndexUtil.java
@@ -40,7 +40,7 @@ public class IndexUtil {
builder.append(fragment.getPath().getName() + "_");
builder.append(fragment.getStartKey() + "_" + fragment.getEndKey() + "_");
for(int i = 0 ; i < keys.length ; i ++) {
- builder.append(keys[i].getSortKey().getColumnName()+"_");
+ builder.append(keys[i].getSortKey().getSimpleName()+"_");
}
builder.append("_index");
return builder.toString();
@@ -51,7 +51,7 @@ public class IndexUtil {
StringBuilder builder = new StringBuilder();
builder.append(indexName + "_");
for(int i = 0 ; i < keys.length ; i ++) {
- builder.append(keys[i].getSortKey().getColumnName() + "_");
+ builder.append(keys[i].getSortKey().getSimpleName() + "_");
}
return builder.toString();
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp
index 26212f0..397146a 100644
--- a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp
+++ b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/catalogview.jsp
@@ -19,11 +19,15 @@
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
-<%@ page import="java.util.*" %>
-<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
-<%@ page import="org.apache.tajo.master.*" %>
-<%@ page import="org.apache.tajo.catalog.*" %>
+<%@ page import="org.apache.tajo.catalog.CatalogService" %>
+<%@ page import="org.apache.tajo.catalog.Column" %>
+<%@ page import="org.apache.tajo.catalog.TableDesc" %>
+<%@ page import="org.apache.tajo.master.TajoMaster" %>
<%@ page import="org.apache.tajo.util.FileUtil" %>
+<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
+<%@ page import="java.util.Collection" %>
+<%@ page import="java.util.List" %>
+<%@ page import="java.util.Map" %>
<%
TajoMaster master = (TajoMaster) StaticHttpServer.getInstance().getAttribute("tajo.info.server.object");
CatalogService catalog = master.getCatalog();
@@ -119,7 +123,7 @@
out.write("<table border='1' class='border_table'><tr><th>No</th><th>Column name</th><th>Type</th></tr>");
int columnIndex = 1;
for(Column eachColumn: columns) {
- out.write("<tr><td width='30' align='right'>" + columnIndex + "</td><td width='320'>" + eachColumn.getColumnName() + "</td><td width='150'>" + eachColumn.getDataType().getType() + "</td></tr>");
+ out.write("<tr><td width='30' align='right'>" + columnIndex + "</td><td width='320'>" + eachColumn.getSimpleName() + "</td><td width='150'>" + eachColumn.getDataType().getType() + "</td></tr>");
columnIndex++;
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
index dea4fc8..7e721c5 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
@@ -106,15 +106,15 @@ public class ExprTestBase {
inputSchema = SchemaUtil.clone(schema);
inputSchema.setQualifier(tableName);
- int targetIdx [] = new int[inputSchema.getColumnNum()];
+ int targetIdx [] = new int[inputSchema.size()];
for (int i = 0; i < targetIdx.length; i++) {
targetIdx[i] = i;
}
lazyTuple =
new LazyTuple(inputSchema, Bytes.splitPreserveAllTokens(csvTuple.getBytes(), delimiter, targetIdx),0);
- vtuple = new VTuple(inputSchema.getColumnNum());
- for (int i = 0; i < inputSchema.getColumnNum(); i++) {
+ vtuple = new VTuple(inputSchema.size());
+ for (int i = 0; i < inputSchema.size(); i++) {
// If null value occurs, null datum is manually inserted to an input tuple.
if (lazyTuple.get(i) instanceof TextDatum && lazyTuple.get(i).asChars().equals("")) {
vtuple.put(i, NullDatum.get());
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
index 6038124..f9c50ac 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
@@ -204,9 +204,9 @@ public class TestEvalTreeUtil {
Schema schema = EvalTreeUtil.getSchemaByTargets(null, targets);
Column col1 = schema.getColumn(0);
Column col2 = schema.getColumn(1);
- assertEquals("plus", col1.getColumnName());
+ assertEquals("plus", col1.getSimpleName());
assertEquals(TajoDataTypes.Type.INT4, col1.getDataType().getType());
- assertEquals("mul", col2.getColumnName());
+ assertEquals("mul", col2.getSimpleName());
assertEquals(TajoDataTypes.Type.FLOAT8, col2.getDataType().getType());
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
index 92faec0..6107ca7 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
@@ -206,7 +206,7 @@ public class TestLogicalOptimizer {
assertFalse(joinNode.hasJoinQual());
// Test for Pushable
- assertTrue(PlannerUtil.canBeEvaluated(selNode.getQual(), joinNode));
+ assertTrue(LogicalPlanner.checkIfBeEvaluatedAtJoin(newPlan.getRootBlock(), selNode.getQual(), joinNode, false));
// Optimized plan
LogicalNode optimized = optimizer.optimize(newPlan);
@@ -235,7 +235,7 @@ public class TestLogicalOptimizer {
assertEquals(NodeType.SCAN, selNode.getChild().getType());
ScanNode scanNode = selNode.getChild();
// Test for Join Node
- assertTrue(PlannerUtil.canBeEvaluated(selNode.getQual(), scanNode));
+ assertTrue(LogicalPlanner.checkIfBeEvaluatedAtRelation(newPlan.getRootBlock(), selNode.getQual(), scanNode));
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
index f9cbcf9..228d42d 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
@@ -154,10 +154,10 @@ public class TestLogicalPlanner {
public static void assertSchema(Schema expected, Schema schema) {
Column expectedColumn;
Column column;
- for (int i = 0; i < expected.getColumnNum(); i++) {
+ for (int i = 0; i < expected.size(); i++) {
expectedColumn = expected.getColumn(i);
- column = schema.getColumnByName(expectedColumn.getColumnName());
- assertEquals(expectedColumn.getColumnName(), column.getColumnName());
+ column = schema.getColumn(expectedColumn.getSimpleName());
+ assertEquals(expectedColumn.getSimpleName(), column.getSimpleName());
assertEquals(expectedColumn.getDataType(), column.getDataType());
}
}
@@ -179,9 +179,8 @@ public class TestLogicalPlanner {
expectedSchema.addColumn("empid", Type.INT4);
expectedSchema.addColumn("deptname", Type.TEXT);
expectedSchema.addColumn("manager", Type.TEXT);
- for (int i = 0; i < expectedSchema.getColumnNum(); i++) {
- Column found = root.getOutSchema().getColumnByName(expectedSchema.getColumn(i).
- getColumnName());
+ for (int i = 0; i < expectedSchema.size(); i++) {
+ Column found = root.getOutSchema().getColumn(expectedSchema.getColumn(i).getSimpleName());
assertEquals(expectedSchema.getColumn(i).getDataType(), found.getDataType());
}
@@ -562,11 +561,11 @@ public class TestLogicalPlanner {
Iterator<Column> it = out.getColumns().iterator();
Column col = it.next();
- assertEquals("res1", col.getColumnName());
+ assertEquals("res1", col.getSimpleName());
col = it.next();
- assertEquals("res2", col.getColumnName());
+ assertEquals("res2", col.getSimpleName());
col = it.next();
- assertEquals("res3", col.getColumnName());
+ assertEquals("res3", col.getSimpleName());
}
@Test
@@ -581,7 +580,7 @@ public class TestLogicalPlanner {
assertEquals(NodeType.PROJECTION, root.getChild().getType());
ProjectionNode projNode = root.getChild();
- assertEquals(6, projNode.getOutSchema().getColumnNum());
+ assertEquals(6, projNode.getOutSchema().size());
assertEquals(NodeType.SELECTION, projNode.getChild().getType());
SelectionNode selNode = projNode.getChild();
@@ -607,9 +606,9 @@ public class TestLogicalPlanner {
Schema finalSchema = root.getOutSchema();
Iterator<Column> it = finalSchema.getColumns().iterator();
Column col = it.next();
- assertEquals("deptname", col.getColumnName());
+ assertEquals("deptname", col.getSimpleName());
col = it.next();
- assertEquals("total", col.getColumnName());
+ assertEquals("total", col.getSimpleName());
expr = sqlAnalyzer.parse(ALIAS[1]);
plan = planner.createPlan(expr).getRootBlock().getRoot();
@@ -618,9 +617,9 @@ public class TestLogicalPlanner {
finalSchema = root.getOutSchema();
it = finalSchema.getColumns().iterator();
col = it.next();
- assertEquals("id", col.getColumnName());
+ assertEquals("id", col.getSimpleName());
col = it.next();
- assertEquals("total", col.getColumnName());
+ assertEquals("total", col.getSimpleName());
}
@Test
@@ -633,9 +632,9 @@ public class TestLogicalPlanner {
Schema finalSchema = root.getOutSchema();
Iterator<Column> it = finalSchema.getColumns().iterator();
Column col = it.next();
- assertEquals("id", col.getColumnName());
+ assertEquals("id", col.getSimpleName());
col = it.next();
- assertEquals("total", col.getColumnName());
+ assertEquals("total", col.getSimpleName());
}
static final String CREATE_TABLE [] = {
@@ -652,13 +651,13 @@ public class TestLogicalPlanner {
CreateTableNode createTable = root.getChild();
Schema def = createTable.getTableSchema();
- assertEquals("name", def.getColumn(0).getColumnName());
+ assertEquals("name", def.getColumn(0).getSimpleName());
assertEquals(Type.TEXT, def.getColumn(0).getDataType().getType());
- assertEquals("age", def.getColumn(1).getColumnName());
+ assertEquals("age", def.getColumn(1).getSimpleName());
assertEquals(Type.INT4, def.getColumn(1).getDataType().getType());
- assertEquals("earn", def.getColumn(2).getColumnName());
+ assertEquals("earn", def.getColumn(2).getSimpleName());
assertEquals(Type.INT8, def.getColumn(2).getDataType().getType());
- assertEquals("score", def.getColumn(3).getColumnName());
+ assertEquals("score", def.getColumn(3).getSimpleName());
assertEquals(Type.FLOAT4, def.getColumn(3).getDataType().getType());
assertEquals(StoreType.CSV, createTable.getStorageType());
assertEquals("/tmp/data", createTable.getPath().toString());
@@ -825,8 +824,8 @@ public class TestLogicalPlanner {
assertFalse(insertNode.isOverwrite());
assertEquals("employee", insertNode.getTableName());
assertTrue(insertNode.hasTargetSchema());
- assertEquals(insertNode.getTargetSchema().getColumn(0).getColumnName(), "name");
- assertEquals(insertNode.getTargetSchema().getColumn(1).getColumnName(), "deptname");
+ assertEquals(insertNode.getTargetSchema().getColumn(0).getSimpleName(), "name");
+ assertEquals(insertNode.getTargetSchema().getColumn(1).getSimpleName(), "deptname");
}
@Test
@@ -849,8 +848,8 @@ public class TestLogicalPlanner {
assertTrue(insertNode.hasTargetTable());
assertEquals("employee", insertNode.getTableName());
assertTrue(insertNode.hasTargetSchema());
- assertEquals(insertNode.getTargetSchema().getColumn(0).getColumnName(), "name");
- assertEquals(insertNode.getTargetSchema().getColumn(1).getColumnName(), "deptname");
+ assertEquals(insertNode.getTargetSchema().getColumn(0).getSimpleName(), "name");
+ assertEquals(insertNode.getTargetSchema().getColumn(1).getSimpleName(), "deptname");
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
index 00ce501..c113559 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
@@ -223,8 +223,8 @@ public class TestPlannerUtil {
assertEquals(2, sortSpecs.length);
assertEquals(1, sortSpecs[0].length);
assertEquals(1, sortSpecs[1].length);
- assertEquals(outerSchema.getColumnByName("id1"), sortSpecs[0][0].getSortKey());
- assertEquals(innerSchema.getColumnByName("fid1"), sortSpecs[1][0].getSortKey());
+ assertEquals(outerSchema.getColumn("id1"), sortSpecs[0][0].getSortKey());
+ assertEquals(innerSchema.getColumn("fid1"), sortSpecs[1][0].getSortKey());
// tests for composited join key
EvalNode joinQual2 = new BinaryEval(EvalType.EQUAL, f3, f4);
@@ -234,10 +234,10 @@ public class TestPlannerUtil {
assertEquals(2, sortSpecs.length);
assertEquals(2, sortSpecs[0].length);
assertEquals(2, sortSpecs[1].length);
- assertEquals(outerSchema.getColumnByName("id1"), sortSpecs[0][0].getSortKey());
- assertEquals(outerSchema.getColumnByName("id2"), sortSpecs[0][1].getSortKey());
- assertEquals(innerSchema.getColumnByName("fid1"), sortSpecs[1][0].getSortKey());
- assertEquals(innerSchema.getColumnByName("fid2"), sortSpecs[1][1].getSortKey());
+ assertEquals(outerSchema.getColumn("id1"), sortSpecs[0][0].getSortKey());
+ assertEquals(outerSchema.getColumn("id2"), sortSpecs[0][1].getSortKey());
+ assertEquals(innerSchema.getColumn("fid1"), sortSpecs[1][0].getSortKey());
+ assertEquals(innerSchema.getColumn("fid2"), sortSpecs[1][1].getSortKey());
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
index 235fbcf..572a60a 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -37,8 +35,10 @@ import org.apache.tajo.engine.planner.logical.JoinNode;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -83,7 +83,7 @@ public class TestBNLJoinExec {
Path employeePath = new Path(testDir, "employee.csv");
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, schema, employeePath);
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = 0; i < OUTER_TUPLE_NUM; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createInt4(i), DatumFactory.createInt4(10 + i),
@@ -104,7 +104,7 @@ public class TestBNLJoinExec {
Path peoplePath = new Path(testDir, "people.csv");
appender = StorageManagerFactory.getStorageManager(conf).getAppender(peopleMeta, peopleSchema, peoplePath);
appender.init();
- tuple = new VTuple(peopleSchema.getColumnNum());
+ tuple = new VTuple(peopleSchema.size());
for (int i = 1; i < INNER_TUPLE_NUM; i += 2) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createInt4(10 + i),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
index 97932e7..4839451 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
@@ -23,9 +23,6 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.storage.fragment.FragmentConvertor;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -41,8 +38,11 @@ import org.apache.tajo.engine.planner.PhysicalPlannerImpl;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.ScanNode;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
+import org.apache.tajo.storage.fragment.FragmentConvertor;
import org.apache.tajo.storage.index.bst.BSTIndex;
import org.apache.tajo.util.CommonTestingUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -98,7 +98,7 @@ public class TestBSTIndexExec {
this.idxSchema = new Schema();
idxSchema.addColumn("managerId", Type.INT4);
SortSpec[] sortKeys = new SortSpec[1];
- sortKeys[0] = new SortSpec(idxSchema.getColumnByFQN("managerId"), true, false);
+ sortKeys[0] = new SortSpec(idxSchema.getColumn("managerId"), true, false);
this.comp = new TupleComparator(idxSchema, sortKeys);
this.writer = new BSTIndex(conf).getIndexWriter(idxPath,
@@ -115,10 +115,10 @@ public class TestBSTIndexExec {
FileAppender appender = (FileAppender)StorageManagerFactory.getStorageManager(conf).getAppender(meta, schema,
tablePath);
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = 0; i < 10000; i++) {
- Tuple key = new VTuple(this.idxSchema.getColumnNum());
+ Tuple key = new VTuple(this.idxSchema.size());
int rndKey = rnd.nextInt(250);
if(this.randomValues.containsKey(rndKey)) {
int t = this.randomValues.remove(rndKey) + 1;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
index a2a2b54..61d56fc 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
@@ -80,7 +80,7 @@ public class TestExternalSortExec {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, schema, employeePath);
appender.enableStats();
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = 0; i < numTuple; i++) {
tuple.put(new Datum[] {
DatumFactory.createInt4(rnd.nextInt(50)),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
index 63f14b7..e6ffac2 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -37,8 +35,10 @@ import org.apache.tajo.engine.planner.logical.JoinNode;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -96,7 +96,7 @@ public class TestFullOuterHashJoinExec {
Path dep3Path = new Path(testDir, "dep3.csv");
Appender appender1 = StorageManagerFactory.getStorageManager(conf).getAppender(dep3Meta, dep3Schema, dep3Path);
appender1.init();
- Tuple tuple = new VTuple(dep3Schema.getColumnNum());
+ Tuple tuple = new VTuple(dep3Schema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -125,7 +125,7 @@ public class TestFullOuterHashJoinExec {
Path job3Path = new Path(testDir, "job3.csv");
Appender appender2 = StorageManagerFactory.getStorageManager(conf).getAppender(job3Meta, job3Schema, job3Path);
appender2.init();
- Tuple tuple2 = new VTuple(job3Schema.getColumnNum());
+ Tuple tuple2 = new VTuple(job3Schema.size());
for (int i = 1; i < 4; i++) {
int x = 100 + i;
tuple2.put(new Datum[] { DatumFactory.createInt4(100 + i),
@@ -164,7 +164,7 @@ public class TestFullOuterHashJoinExec {
Path emp3Path = new Path(testDir, "emp3.csv");
Appender appender3 = StorageManagerFactory.getStorageManager(conf).getAppender(emp3Meta, emp3Schema, emp3Path);
appender3.init();
- Tuple tuple3 = new VTuple(emp3Schema.getColumnNum());
+ Tuple tuple3 = new VTuple(emp3Schema.size());
for (int i = 1; i < 4; i += 2) {
int x = 10 + i;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
index c92d1c9..3519d1c 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -37,8 +35,10 @@ import org.apache.tajo.engine.planner.logical.JoinNode;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -46,9 +46,7 @@ import org.junit.Test;
import java.io.IOException;
import static org.apache.tajo.ipc.TajoWorkerProtocol.JoinEnforce.JoinAlgorithm;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
public class TestFullOuterMergeJoinExec {
private TajoConf conf;
@@ -99,7 +97,7 @@ public class TestFullOuterMergeJoinExec {
Path dep3Path = new Path(testDir, "dep3.csv");
Appender appender1 = StorageManagerFactory.getStorageManager(conf).getAppender(dep3Meta, dep3Schema, dep3Path);
appender1.init();
- Tuple tuple = new VTuple(dep3Schema.getColumnNum());
+ Tuple tuple = new VTuple(dep3Schema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -137,7 +135,7 @@ public class TestFullOuterMergeJoinExec {
Path dep4Path = new Path(testDir, "dep4.csv");
Appender appender4 = StorageManagerFactory.getStorageManager(conf).getAppender(dep4Meta, dep4Schema, dep4Path);
appender4.init();
- Tuple tuple4 = new VTuple(dep4Schema.getColumnNum());
+ Tuple tuple4 = new VTuple(dep4Schema.size());
for (int i = 0; i < 11; i++) {
tuple4.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -168,7 +166,7 @@ public class TestFullOuterMergeJoinExec {
Path job3Path = new Path(testDir, "job3.csv");
Appender appender2 = StorageManagerFactory.getStorageManager(conf).getAppender(job3Meta, job3Schema, job3Path);
appender2.init();
- Tuple tuple2 = new VTuple(job3Schema.getColumnNum());
+ Tuple tuple2 = new VTuple(job3Schema.size());
for (int i = 1; i < 4; i++) {
int x = 100 + i;
tuple2.put(new Datum[] { DatumFactory.createInt4(100 + i),
@@ -207,7 +205,7 @@ public class TestFullOuterMergeJoinExec {
Path emp3Path = new Path(testDir, "emp3.csv");
Appender appender3 = StorageManagerFactory.getStorageManager(conf).getAppender(emp3Meta, emp3Schema, emp3Path);
appender3.init();
- Tuple tuple3 = new VTuple(emp3Schema.getColumnNum());
+ Tuple tuple3 = new VTuple(emp3Schema.size());
for (int i = 1; i < 4; i += 2) {
int x = 10 + i;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
index f4350fb..60d90d9 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -35,8 +33,10 @@ import org.apache.tajo.engine.planner.*;
import org.apache.tajo.engine.planner.enforce.Enforcer;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -80,7 +80,7 @@ public class TestHashAntiJoinExec {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, employeeSchema,
employeePath);
appender.init();
- Tuple tuple = new VTuple(employeeSchema.getColumnNum());
+ Tuple tuple = new VTuple(employeeSchema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] {
@@ -105,7 +105,7 @@ public class TestHashAntiJoinExec {
Path peoplePath = new Path(testDir, "people.csv");
appender = StorageManagerFactory.getStorageManager(conf).getAppender(peopleMeta, peopleSchema, peoplePath);
appender.init();
- tuple = new VTuple(peopleSchema.getColumnNum());
+ tuple = new VTuple(peopleSchema.size());
for (int i = 1; i < 10; i += 2) {
tuple.put(new Datum[] {
DatumFactory.createInt4(i), // empid [1, 3, 5, 7, 9]
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
index 8d319ee..6f0b4e2 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
@@ -81,7 +81,7 @@ public class TestHashJoinExec {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, employeeSchema,
employeePath);
appender.init();
- Tuple tuple = new VTuple(employeeSchema.getColumnNum());
+ Tuple tuple = new VTuple(employeeSchema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createInt4(i), DatumFactory.createInt4(10 + i),
@@ -103,7 +103,7 @@ public class TestHashJoinExec {
Path peoplePath = new Path(testDir, "people.csv");
appender = StorageManagerFactory.getStorageManager(conf).getAppender(peopleMeta, peopleSchema, peoplePath);
appender.init();
- tuple = new VTuple(peopleSchema.getColumnNum());
+ tuple = new VTuple(peopleSchema.size());
for (int i = 1; i < 10; i += 2) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createInt4(10 + i),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
index 8eec324..ebc35d3 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -35,8 +33,10 @@ import org.apache.tajo.engine.planner.*;
import org.apache.tajo.engine.planner.enforce.Enforcer;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -80,7 +80,7 @@ public class TestHashSemiJoinExec {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, employeeSchema,
employeePath);
appender.init();
- Tuple tuple = new VTuple(employeeSchema.getColumnNum());
+ Tuple tuple = new VTuple(employeeSchema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] {
@@ -105,7 +105,7 @@ public class TestHashSemiJoinExec {
Path peoplePath = new Path(testDir, "people.csv");
appender = StorageManagerFactory.getStorageManager(conf).getAppender(peopleMeta, peopleSchema, peoplePath);
appender.init();
- tuple = new VTuple(peopleSchema.getColumnNum());
+ tuple = new VTuple(peopleSchema.size());
// make 27 tuples
for (int i = 1; i < 10; i += 2) {
// make three duplicated tuples for each tuples
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
index e163a29..bee7547 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
@@ -19,9 +19,8 @@
package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
+import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -36,12 +35,13 @@ import org.apache.tajo.engine.planner.logical.JoinNode;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.tajo.LocalTajoTestingUtility;
import java.io.IOException;
@@ -96,7 +96,7 @@ public class TestLeftOuterHashJoinExec {
Path dep3Path = new Path(testDir, "dep3.csv");
Appender appender1 = StorageManagerFactory.getStorageManager(conf).getAppender(dep3Meta, dep3Schema, dep3Path);
appender1.init();
- Tuple tuple = new VTuple(dep3Schema.getColumnNum());
+ Tuple tuple = new VTuple(dep3Schema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -125,7 +125,7 @@ public class TestLeftOuterHashJoinExec {
Path job3Path = new Path(testDir, "job3.csv");
Appender appender2 = StorageManagerFactory.getStorageManager(conf).getAppender(job3Meta, job3Schema, job3Path);
appender2.init();
- Tuple tuple2 = new VTuple(job3Schema.getColumnNum());
+ Tuple tuple2 = new VTuple(job3Schema.size());
for (int i = 1; i < 4; i++) {
int x = 100 + i;
tuple2.put(new Datum[] { DatumFactory.createInt4(100 + i),
@@ -164,7 +164,7 @@ public class TestLeftOuterHashJoinExec {
Path emp3Path = new Path(testDir, "emp3.csv");
Appender appender3 = StorageManagerFactory.getStorageManager(conf).getAppender(emp3Meta, emp3Schema, emp3Path);
appender3.init();
- Tuple tuple3 = new VTuple(emp3Schema.getColumnNum());
+ Tuple tuple3 = new VTuple(emp3Schema.size());
for (int i = 1; i < 4; i += 2) {
int x = 10 + i;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java
index 0540bc1..1ac202e 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterNLJoinExec.java
@@ -95,7 +95,7 @@ public class TestLeftOuterNLJoinExec {
Path dep3Path = new Path(testDir, "dep3.csv");
Appender appender1 = StorageManagerFactory.getStorageManager(conf).getAppender(dep3Meta, dep3Schema, dep3Path);
appender1.init();
- Tuple tuple = new VTuple(dep3Schema.getColumnNum());
+ Tuple tuple = new VTuple(dep3Schema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -124,7 +124,7 @@ public class TestLeftOuterNLJoinExec {
Path job3Path = new Path(testDir, "job3.csv");
Appender appender2 = StorageManagerFactory.getStorageManager(conf).getAppender(job3Meta, job3Schema, job3Path);
appender2.init();
- Tuple tuple2 = new VTuple(job3Schema.getColumnNum());
+ Tuple tuple2 = new VTuple(job3Schema.size());
for (int i = 1; i < 4; i++) {
int x = 100 + i;
tuple2.put(new Datum[] { DatumFactory.createInt4(100 + i),
@@ -163,7 +163,7 @@ public class TestLeftOuterNLJoinExec {
Path emp3Path = new Path(testDir, "emp3.csv");
Appender appender3 = StorageManagerFactory.getStorageManager(conf).getAppender(emp3Meta, emp3Schema, emp3Path);
appender3.init();
- Tuple tuple3 = new VTuple(emp3Schema.getColumnNum());
+ Tuple tuple3 = new VTuple(emp3Schema.size());
for (int i = 1; i < 4; i += 2) {
int x = 10 + i;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
index af72541..5977c95 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
@@ -22,8 +22,6 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -38,8 +36,10 @@ import org.apache.tajo.engine.planner.logical.JoinNode;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -83,7 +83,7 @@ public class TestMergeJoinExec {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, employeeSchema,
employeePath);
appender.init();
- Tuple tuple = new VTuple(employeeSchema.getColumnNum());
+ Tuple tuple = new VTuple(employeeSchema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createInt4(i), DatumFactory.createInt4(10 + i),
@@ -111,7 +111,7 @@ public class TestMergeJoinExec {
Path peoplePath = new Path(testDir, "people.csv");
appender = StorageManagerFactory.getStorageManager(conf).getAppender(peopleMeta, peopleSchema, peoplePath);
appender.init();
- tuple = new VTuple(peopleSchema.getColumnNum());
+ tuple = new VTuple(peopleSchema.size());
for (int i = 1; i < 10; i += 2) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createInt4(10 + i),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
index 004cb57..601621d 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -39,8 +37,10 @@ import org.apache.tajo.engine.planner.enforce.Enforcer;
import org.apache.tajo.engine.planner.global.MasterPlan;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -83,7 +83,7 @@ public class TestNLJoinExec {
Path employeePath = new Path(testDir, "employee.csv");
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, schema, employeePath);
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = 0; i < 50; i++) {
tuple.put(new Datum[] {
DatumFactory.createInt4(i),
@@ -106,7 +106,7 @@ public class TestNLJoinExec {
Path peoplePath = new Path(testDir, "people.csv");
appender = StorageManagerFactory.getStorageManager(conf).getAppender(peopleMeta, peopleSchema, peoplePath);
appender.init();
- tuple = new VTuple(peopleSchema.getColumnNum());
+ tuple = new VTuple(peopleSchema.size());
for (int i = 1; i < 50; i += 2) {
tuple.put(new Datum[] {
DatumFactory.createInt4(i),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
index 72462de..7e3bd2b 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
@@ -114,7 +114,7 @@ public class TestPhysicalPlanner {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, employeeSchema,
employeePath);
appender.init();
- Tuple tuple = new VTuple(employeeSchema.getColumnNum());
+ Tuple tuple = new VTuple(employeeSchema.size());
for (int i = 0; i < 100; i++) {
tuple.put(new Datum[] {DatumFactory.createText("name_" + i),
DatumFactory.createInt4(i), DatumFactory.createText("dept_" + i)});
@@ -131,7 +131,7 @@ public class TestPhysicalPlanner {
appender = StorageManagerFactory.getStorageManager(conf).getAppender(scoreMeta, scoreSchema, scorePath);
appender.init();
score = new TableDesc("score", scoreSchema, scoreMeta, scorePath);
- tuple = new VTuple(scoreSchema.getColumnNum());
+ tuple = new VTuple(scoreSchema.size());
int m = 0;
for (int i = 1; i <= 5; i++) {
for (int k = 3; k < 5; k++) {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
index b52a37a..d2c29a3 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
@@ -19,10 +19,8 @@
package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
+import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.engine.planner.enforce.Enforcer;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -35,14 +33,16 @@ import org.apache.tajo.engine.planner.LogicalPlanner;
import org.apache.tajo.engine.planner.PhysicalPlanner;
import org.apache.tajo.engine.planner.PhysicalPlannerImpl;
import org.apache.tajo.engine.planner.PlanningException;
+import org.apache.tajo.engine.planner.enforce.Enforcer;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.tajo.LocalTajoTestingUtility;
import java.io.IOException;
@@ -96,7 +96,7 @@ public class TestRightOuterHashJoinExec {
Path dep3Path = new Path(testDir, "dep3.csv");
Appender appender1 = StorageManagerFactory.getStorageManager(conf).getAppender(dep3Meta, dep3Schema, dep3Path);
appender1.init();
- Tuple tuple = new VTuple(dep3Schema.getColumnNum());
+ Tuple tuple = new VTuple(dep3Schema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -125,7 +125,7 @@ public class TestRightOuterHashJoinExec {
Path job3Path = new Path(testDir, "job3.csv");
Appender appender2 = StorageManagerFactory.getStorageManager(conf).getAppender(job3Meta, job3Schema, job3Path);
appender2.init();
- Tuple tuple2 = new VTuple(job3Schema.getColumnNum());
+ Tuple tuple2 = new VTuple(job3Schema.size());
for (int i = 1; i < 4; i++) {
int x = 100 + i;
tuple2.put(new Datum[] { DatumFactory.createInt4(100 + i),
@@ -164,7 +164,7 @@ public class TestRightOuterHashJoinExec {
Path emp3Path = new Path(testDir, "emp3.csv");
Appender appender3 = StorageManagerFactory.getStorageManager(conf).getAppender(emp3Meta, emp3Schema, emp3Path);
appender3.init();
- Tuple tuple3 = new VTuple(emp3Schema.getColumnNum());
+ Tuple tuple3 = new VTuple(emp3Schema.size());
for (int i = 1; i < 4; i += 2) {
int x = 10 + i;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
index 5bbb4aa..b4b588d 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
@@ -21,8 +21,6 @@ package org.apache.tajo.engine.planner.physical;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
-import org.apache.tajo.storage.fragment.FileFragment;
-import org.apache.tajo.worker.TaskAttemptContext;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
@@ -37,8 +35,10 @@ import org.apache.tajo.engine.planner.logical.JoinNode;
import org.apache.tajo.engine.planner.logical.LogicalNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.storage.*;
+import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.TUtil;
+import org.apache.tajo.worker.TaskAttemptContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -46,9 +46,7 @@ import org.junit.Test;
import java.io.IOException;
import static org.apache.tajo.ipc.TajoWorkerProtocol.JoinEnforce.JoinAlgorithm;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
public class TestRightOuterMergeJoinExec {
private TajoConf conf;
@@ -99,7 +97,7 @@ public class TestRightOuterMergeJoinExec {
Path dep3Path = new Path(testDir, "dep3.csv");
Appender appender1 = StorageManagerFactory.getStorageManager(conf).getAppender(dep3Meta, dep3Schema, dep3Path);
appender1.init();
- Tuple tuple = new VTuple(dep3Schema.getColumnNum());
+ Tuple tuple = new VTuple(dep3Schema.size());
for (int i = 0; i < 10; i++) {
tuple.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -137,7 +135,7 @@ public class TestRightOuterMergeJoinExec {
Path dep4Path = new Path(testDir, "dep4.csv");
Appender appender4 = StorageManagerFactory.getStorageManager(conf).getAppender(dep4Meta, dep4Schema, dep4Path);
appender4.init();
- Tuple tuple4 = new VTuple(dep4Schema.getColumnNum());
+ Tuple tuple4 = new VTuple(dep4Schema.size());
for (int i = 0; i < 11; i++) {
tuple4.put(new Datum[] { DatumFactory.createInt4(i),
DatumFactory.createText("dept_" + i),
@@ -168,7 +166,7 @@ public class TestRightOuterMergeJoinExec {
Path job3Path = new Path(testDir, "job3.csv");
Appender appender2 = StorageManagerFactory.getStorageManager(conf).getAppender(job3Meta, job3Schema, job3Path);
appender2.init();
- Tuple tuple2 = new VTuple(job3Schema.getColumnNum());
+ Tuple tuple2 = new VTuple(job3Schema.size());
for (int i = 1; i < 4; i++) {
int x = 100 + i;
tuple2.put(new Datum[] { DatumFactory.createInt4(100 + i),
@@ -207,7 +205,7 @@ public class TestRightOuterMergeJoinExec {
Path emp3Path = new Path(testDir, "emp3.csv");
Appender appender3 = StorageManagerFactory.getStorageManager(conf).getAppender(emp3Meta, emp3Schema, emp3Path);
appender3.init();
- Tuple tuple3 = new VTuple(emp3Schema.getColumnNum());
+ Tuple tuple3 = new VTuple(emp3Schema.size());
for (int i = 1; i < 4; i += 2) {
int x = 10 + i;
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
index 7e8c118..00fb386 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
@@ -80,7 +80,7 @@ public class TestSortExec {
Appender appender = StorageManagerFactory.getStorageManager(conf).getAppender(employeeMeta, schema, tablePath);
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = 0; i < 100; i++) {
tuple.put(new Datum[] {
DatumFactory.createInt4(rnd.nextInt(5)),
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
index 9b940da..902a73a 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
@@ -56,7 +56,7 @@ public class TestCTASQuery extends QueryTestCaseBase {
assertTrue(desc.getSchema().contains("testCtasWithoutTableDefinition.col1"));
PartitionMethodDesc partitionDesc = desc.getPartitionMethod();
assertEquals(partitionDesc.getPartitionType(), CatalogProtos.PartitionType.COLUMN);
- assertEquals("key", partitionDesc.getExpressionSchema().getColumns().get(0).getColumnName());
+ assertEquals("key", partitionDesc.getExpressionSchema().getColumns().get(0).getSimpleName());
FileSystem fs = FileSystem.get(testBase.getTestingCluster().getConfiguration());
Path path = desc.getPath();
@@ -95,7 +95,7 @@ public class TestCTASQuery extends QueryTestCaseBase {
assertTrue(catalog.existsTable("testCtasWithColumnedPartition"));
PartitionMethodDesc partitionDesc = desc.getPartitionMethod();
assertEquals(partitionDesc.getPartitionType(), CatalogProtos.PartitionType.COLUMN);
- assertEquals("key", partitionDesc.getExpressionSchema().getColumns().get(0).getColumnName());
+ assertEquals("key", partitionDesc.getExpressionSchema().getColumns().get(0).getSimpleName());
FileSystem fs = FileSystem.get(cluster.getConfiguration());
Path path = desc.getPath();
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
index f775acb..60c8497 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
@@ -36,7 +36,6 @@ import java.sql.ResultSet;
import java.util.Map;
import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
public class TestTablePartitions extends QueryTestCaseBase {
@@ -53,8 +52,8 @@ public class TestTablePartitions extends QueryTestCaseBase {
res.close();
assertTrue(catalog.existsTable(tableName));
- assertEquals(2, catalog.getTableDesc(tableName).getSchema().getColumnNum());
- assertEquals(3, catalog.getTableDesc(tableName).getLogicalSchema().getColumnNum());
+ assertEquals(2, catalog.getTableDesc(tableName).getSchema().size());
+ assertEquals(3, catalog.getTableDesc(tableName).getLogicalSchema().size());
res = testBase.execute(
"insert overwrite into " + tableName + " select l_orderkey, l_partkey, l_quantity from lineitem");
@@ -69,8 +68,8 @@ public class TestTablePartitions extends QueryTestCaseBase {
res.close();
assertTrue(catalog.existsTable(tableName));
- assertEquals(3, catalog.getTableDesc(tableName).getSchema().getColumnNum());
- assertEquals(4, catalog.getTableDesc(tableName).getLogicalSchema().getColumnNum());
+ assertEquals(3, catalog.getTableDesc(tableName).getSchema().size());
+ assertEquals(4, catalog.getTableDesc(tableName).getLogicalSchema().size());
res = executeString("insert overwrite into " + tableName + " (col1, col2, key) select l_orderkey, " +
"l_partkey, l_quantity from lineitem");
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
index aff996b..3610382 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
@@ -25,7 +25,10 @@ import org.apache.hadoop.fs.Path;
import org.apache.tajo.IntegrationTest;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.TpchTestBase;
-import org.apache.tajo.catalog.*;
+import org.apache.tajo.catalog.CatalogUtil;
+import org.apache.tajo.catalog.Schema;
+import org.apache.tajo.catalog.TableDesc;
+import org.apache.tajo.catalog.TableMeta;
import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
import org.apache.tajo.catalog.statistics.TableStats;
import org.apache.tajo.common.TajoDataTypes.Type;
@@ -102,9 +105,9 @@ public class TestResultSet {
ResultSetMetaData meta = rs.getMetaData();
assertNotNull(meta);
Schema schema = scoreSchema;
- assertEquals(schema.getColumnNum(), meta.getColumnCount());
+ assertEquals(schema.size(), meta.getColumnCount());
for (int i = 0; i < meta.getColumnCount(); i++) {
- assertEquals(schema.getColumn(i).getColumnName(), meta.getColumnName(i + 1));
+ assertEquals(schema.getColumn(i).getSimpleName(), meta.getColumnName(i + 1));
assertEquals(schema.getColumn(i).getQualifier(), meta.getTableName(i + 1));
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
index 2313388..445cd69 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
@@ -238,7 +238,7 @@ public class TestTajoJdbc {
while(rs.next()) {
assertEquals(tableName, rs.getString("TABLE_NAME"));
- assertEquals(columns.get(numColumns).getColumnName(), rs.getString("COLUMN_NAME"));
+ assertEquals(columns.get(numColumns).getSimpleName(), rs.getString("COLUMN_NAME"));
//TODO assert type
numColumns++;
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java
index b18f706..65b7d1e 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/worker/TestRangeRetrieverHandler.java
@@ -36,7 +36,10 @@ import org.apache.tajo.engine.parser.SQLAnalyzer;
import org.apache.tajo.engine.planner.*;
import org.apache.tajo.engine.planner.enforce.Enforcer;
import org.apache.tajo.engine.planner.logical.LogicalNode;
-import org.apache.tajo.engine.planner.physical.*;
+import org.apache.tajo.engine.planner.physical.ExternalSortExec;
+import org.apache.tajo.engine.planner.physical.PhysicalExec;
+import org.apache.tajo.engine.planner.physical.ProjectionExec;
+import org.apache.tajo.engine.planner.physical.RangeShuffleFileWriteExec;
import org.apache.tajo.storage.*;
import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.storage.index.bst.BSTIndex;
@@ -52,7 +55,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
public class TestRangeRetrieverHandler {
private TajoTestingCluster util;
@@ -108,7 +112,7 @@ public class TestRangeRetrieverHandler {
Appender appender = sm.getAppender(employeeMeta, schema, tableDir);
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = 0; i < TEST_TUPLE; i++) {
tuple.put(
new Datum[] {
@@ -229,7 +233,7 @@ public class TestRangeRetrieverHandler {
fs.mkdirs(tablePath.getParent());
Appender appender = sm.getAppender(meta, schema, tablePath);
appender.init();
- Tuple tuple = new VTuple(schema.getColumnNum());
+ Tuple tuple = new VTuple(schema.size());
for (int i = (TEST_TUPLE - 1); i >= 0 ; i--) {
tuple.put(
new Datum[] {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/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 2637e6b..b3e67bc 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
@@ -494,14 +494,14 @@ public class TajoDatabaseMetaData implements DatabaseMetaData {
TableDesc tableDesc = conn.getTajoClient().getTableDesc(table);
int pos = 0;
for (Column column: tableDesc.getSchema().getColumns()) {
- if (column.getColumnName().matches(regcolumnNamePattern)) {
+ if (column.getSimpleName().matches(regcolumnNamePattern)) {
MetaDataTuple tuple = new MetaDataTuple(22);
int index = 0;
tuple.put(index++, new TextDatum(catalog)); //TABLE_CAT
tuple.put(index++, NullDatum.get()); //TABLE_SCHEM
tuple.put(index++, new TextDatum(table)); //TABLE_NAME
- tuple.put(index++, new TextDatum(column.getColumnName())); //COLUMN_NAME
+ tuple.put(index++, new TextDatum(column.getSimpleName())); //COLUMN_NAME
// TODO - DATA_TYPE
tuple.put(index++, new TextDatum("" + ResultSetUtil.tajoTypeToSqlType(column.getDataType())));
tuple.put(index++, new TextDatum(ResultSetUtil.toSqlType(column.getDataType()))); //TYPE_NAME
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/CSVFile.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/CSVFile.java b/tajo-storage/src/main/java/org/apache/tajo/storage/CSVFile.java
index 490787f..ed65af6 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/CSVFile.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/CSVFile.java
@@ -84,7 +84,7 @@ public class CSVFile {
this.meta = meta;
this.schema = schema;
this.delimiter = StringEscapeUtils.unescapeJava(this.meta.getOption(DELIMITER, DELIMITER_DEFAULT)).charAt(0);
- this.columnNum = schema.getColumnNum();
+ this.columnNum = schema.size();
String nullCharacters = StringEscapeUtils.unescapeJava(this.meta.getOption(NULL));
if (StringUtils.isEmpty(nullCharacters)) {
nullChars = NullDatum.get().asTextBytes();
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/FileScanner.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/FileScanner.java b/tajo-storage/src/main/java/org/apache/tajo/storage/FileScanner.java
index c831822..553fec9 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/FileScanner.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/FileScanner.java
@@ -48,7 +48,7 @@ public abstract class FileScanner implements Scanner {
this.meta = meta;
this.schema = schema;
this.fragment = fragment;
- this.columnNum = this.schema.getColumnNum();
+ this.columnNum = this.schema.size();
}
public void init() throws IOException {
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/e2f4798b/tajo-storage/src/main/java/org/apache/tajo/storage/LazyTuple.java
----------------------------------------------------------------------
diff --git a/tajo-storage/src/main/java/org/apache/tajo/storage/LazyTuple.java b/tajo-storage/src/main/java/org/apache/tajo/storage/LazyTuple.java
index 7878004..3e7ca5f 100644
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/LazyTuple.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/LazyTuple.java
@@ -39,7 +39,7 @@ public class LazyTuple implements Tuple, Cloneable {
public LazyTuple(Schema schema, byte[][] textBytes, long offset, byte[] nullBytes, SerializerDeserializer serde) {
this.schema = schema;
this.textBytes = textBytes;
- this.values = new Datum[schema.getColumnNum()];
+ this.values = new Datum[schema.size()];
this.offset = offset;
this.nullBytes = nullBytes;
this.serializeDeserialize = serde;