diff --git a/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java b/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
index bb20c0af2b..62f944ce43 100644
--- a/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
+++ b/tajo-client/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
@@ -85,7 +85,7 @@ public void put(Datum[] values) {
@Override
public TajoDataTypes.Type type(int fieldId) {
- return values.get(fieldId).type();
+ return values.get(fieldId).kind();
}
@Override
diff --git a/tajo-common/src/main/java/org/apache/tajo/common/type/TajoTypeUtil.java b/tajo-common/src/main/java/org/apache/tajo/common/type/TajoTypeUtil.java
index bbab9deab7..658af6593c 100644
--- a/tajo-common/src/main/java/org/apache/tajo/common/type/TajoTypeUtil.java
+++ b/tajo-common/src/main/java/org/apache/tajo/common/type/TajoTypeUtil.java
@@ -182,20 +182,18 @@ public static boolean isSigned(Type type) {
}
}
- public static boolean isNumeric(Type type) {
- return isNumber(type) || isReal(type);
+ public static boolean isNumeric(org.apache.tajo.type.Type type) {
+ return isNumber(type) || isReal(type.kind());
}
- public static boolean isNumber(Type type) {
+ public static boolean isNumber(org.apache.tajo.type.Type type) {
return
- type == Type.INT2 ||
- type == Type.INT4 ||
- type == Type.INT8;
+ type.kind() == Type.INT2 ||
+ type.kind() == Type.INT4 ||
+ type.kind() == Type.INT8;
}
public static boolean isReal(Type type) {
- return
- type == Type.FLOAT4||
- type == Type.FLOAT8;
+ return type == Type.FLOAT4|| type == Type.FLOAT8;
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/AnyDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/AnyDatum.java
index 0771a6e54f..45b952018a 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/AnyDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/AnyDatum.java
@@ -19,8 +19,7 @@
package org.apache.tajo.datum;
import com.google.gson.annotations.Expose;
-
-import static org.apache.tajo.common.TajoDataTypes.Type.ANY;
+import org.apache.tajo.type.Type;
/**
* AnyDatum can contain any types of datum.
@@ -29,7 +28,7 @@ public class AnyDatum extends Datum {
@Expose Datum val;
public AnyDatum(Datum val) {
- super(ANY);
+ super(Type.Any);
this.val = val;
}
@@ -58,7 +57,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- if (datum.type() == ANY) {
+ if (datum.type.isAny()) {
AnyDatum other = (AnyDatum) datum;
return val.equalsTo(other.val);
}
@@ -67,7 +66,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == ANY) {
+ if (datum.type.isAny()) {
AnyDatum other = (AnyDatum) datum;
return val.compareTo(other.val);
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/BitDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/BitDatum.java
index 8ada5e809e..81fae51b24 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/BitDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/BitDatum.java
@@ -19,8 +19,8 @@
package org.apache.tajo.datum;
import com.google.gson.annotations.Expose;
-import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.exception.InvalidOperationException;
+import org.apache.tajo.type.Type;
import org.apache.tajo.util.NumberUtil;
public class BitDatum extends Datum {
@@ -28,7 +28,7 @@ public class BitDatum extends Datum {
@Expose final byte val;
public BitDatum(byte val) {
- super(TajoDataTypes.Type.BIT);
+ super(Type.Bit);
this.val = val;
}
@@ -105,7 +105,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case BIT:
return DatumFactory.createBool(this.val == (((BitDatum) datum).val));
case NULL_TYPE:
@@ -117,7 +117,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case BIT:
if (val < datum.asByte() ) {
return -1;
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/BlobDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/BlobDatum.java
index 3de5135505..f86bc1e49e 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/BlobDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/BlobDatum.java
@@ -28,21 +28,21 @@
import java.nio.charset.Charset;
import java.util.Arrays;
-import static org.apache.tajo.common.TajoDataTypes.Type.BLOB;
+import static org.apache.tajo.type.Type.Blob;
public class BlobDatum extends Datum {
@Expose private final byte [] val;
private ByteBuffer bb = null;
public BlobDatum(byte[] val) {
- super(BLOB);
+ super(Blob);
this.val = val;
this.bb = ByteBuffer.wrap(val);
bb.flip();
}
public BlobDatum(byte[] val, int offset, int length) {
- super(BLOB);
+ super(Blob);
byte[] b = new byte[length];
System.arraycopy(val, offset, b, 0 , length);
this.val = b;
@@ -51,7 +51,7 @@ public BlobDatum(byte[] val, int offset, int length) {
}
public BlobDatum(ByteBuffer val) {
- super(BLOB);
+ super(Blob);
this.val = val.array();
this.bb = val.duplicate();
bb.flip();
@@ -138,7 +138,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case BLOB:
return DatumFactory.createBool(Arrays.equals(this.val, ((BlobDatum)datum).val));
case NULL_TYPE:
@@ -150,7 +150,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case BLOB:
initFromBytes();
((BlobDatum)datum).initFromBytes();
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/BooleanDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/BooleanDatum.java
index 596540f660..7a2df03a0f 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/BooleanDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/BooleanDatum.java
@@ -20,9 +20,10 @@
import com.google.common.primitives.Booleans;
import com.google.gson.annotations.Expose;
-import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.exception.InvalidOperationException;
+import static org.apache.tajo.type.Type.Bool;
+
public class BooleanDatum extends Datum {
@Expose private final boolean val;
public static final String TRUE_STRING ="t";
@@ -57,17 +58,17 @@ public class BooleanDatum extends Datum {
};
private BooleanDatum(boolean val) {
- super(TajoDataTypes.Type.BOOLEAN);
+ super(Bool);
this.val = val;
}
protected BooleanDatum(byte byteVal) {
- super(TajoDataTypes.Type.BOOLEAN);
+ super(Bool);
this.val = byteVal == TRUE_INT;
}
protected BooleanDatum(int byteVal) {
- super(TajoDataTypes.Type.BOOLEAN);
+ super(Bool);
this.val = byteVal == TRUE_INT;
}
@@ -157,7 +158,7 @@ public boolean equals(Object obj) {
// Datum Comparator
public BooleanDatum equalsTo(Datum datum) {
- switch(datum.type()) {
+ switch(datum.kind()) {
case BOOLEAN: return DatumFactory.createBool(this.val == ((BooleanDatum)datum).val);
default:
throw new InvalidOperationException(datum.type());
@@ -166,7 +167,7 @@ public BooleanDatum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case BOOLEAN:
return Booleans.compare(val, datum.asBool());
default:
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
index 750930f0da..6b75ac6334 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
@@ -24,7 +24,7 @@
import java.util.Arrays;
-import static org.apache.tajo.common.TajoDataTypes.Type;
+import static org.apache.tajo.type.Type.Char;
public class CharDatum extends Datum {
@Expose private final int size;
@@ -32,7 +32,7 @@ public class CharDatum extends Datum {
private String chars = null;
public CharDatum(byte val) {
- super(Type.CHAR);
+ super(Char(1));
this.size = 1;
bytes = new byte[size];
bytes[0] = val;
@@ -43,7 +43,7 @@ public CharDatum(char val) {
}
public CharDatum(byte [] bytes) {
- super(Type.CHAR);
+ super(Char(1));
this.bytes = bytes;
this.size = bytes.length;
}
@@ -131,7 +131,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case CHAR:
case VARCHAR:
case TEXT:
@@ -147,7 +147,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case CHAR:
case TEXT:
return UnsignedBytes.lexicographicalComparator().compare(bytes, datum.asByteArray());
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
index fffdca8693..e8af261163 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
@@ -21,8 +21,8 @@
import com.google.common.primitives.Ints;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.common.TajoDataTypes.Type;
-import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.InvalidOperationException;
+import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.util.Bytes;
import org.apache.tajo.util.datetime.DateTimeConstants.DateStyle;
@@ -30,6 +30,8 @@
import org.apache.tajo.util.datetime.DateTimeUtil;
import org.apache.tajo.util.datetime.TimeMeta;
+import static org.apache.tajo.type.Type.Date;
+
public class DateDatum extends Datum {
public static final int SIZE = 4;
@@ -37,13 +39,13 @@ public class DateDatum extends Datum {
private int jdate;
public DateDatum(int value) {
- super(TajoDataTypes.Type.DATE);
+ super(Date);
jdate = value;
}
public DateDatum(TimeMeta tm) {
- super(TajoDataTypes.Type.DATE);
+ super(Date);
jdate = DateTimeUtil.date2j(tm.years, tm.monthOfYear, tm.dayOfMonth);
}
@@ -102,7 +104,7 @@ public String toString() {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
case INT4:
case INT8: {
@@ -128,7 +130,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch(datum.type()) {
+ switch(datum.kind()) {
case INT2:
case INT4:
case INT8: {
@@ -198,7 +200,7 @@ public int size() {
@Override
public Datum equalsTo(Datum datum) {
- if (datum.type() == Type.DATE) {
+ if (datum.kind() == Type.DATE) {
return DatumFactory.createBool(equals(datum));
} else if (datum.isNull()) {
return datum;
@@ -209,7 +211,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.DATE) {
+ if (datum.kind() == TajoDataTypes.Type.DATE) {
DateDatum another = (DateDatum) datum;
return Ints.compare(jdate, another.jdate);
} else if (datum.isNull()) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Datum.java
index dc61145926..61d8f48514 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Datum.java
@@ -20,6 +20,7 @@
import com.google.gson.annotations.Expose;
import org.apache.tajo.SessionVars;
+import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.common.type.TajoTypeUtil;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.conf.TajoConf.ConfVars;
@@ -30,7 +31,7 @@
import org.apache.tajo.json.GsonObject;
import org.apache.tajo.util.datetime.TimeMeta;
-import static org.apache.tajo.common.TajoDataTypes.Type;
+import static org.apache.tajo.common.TajoDataTypes.Type.*;
public abstract class Datum implements Comparable, GsonObject {
static boolean abortWhenDivideByZero;
@@ -45,18 +46,22 @@ public abstract class Datum implements Comparable, GsonObject {
}
}
- @Expose private final Type type;
+ @Expose protected final org.apache.tajo.type.Type type;
- public Datum(Type type) {
+ public Datum(org.apache.tajo.type.Type type) {
this.type = type;
}
- public Type type() {
+ public org.apache.tajo.type.Type type() {
return this.type;
}
+ public TajoDataTypes.Type kind() {
+ return this.type.kind();
+ }
+
public boolean isTrue() {
- return type == Type.BOOLEAN && asBool();
+ return type.kind() == BOOLEAN && asBool();
}
public boolean isNull() {
@@ -68,48 +73,48 @@ public boolean isNotNull() {
}
public boolean asBool() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.BOOLEAN));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type.kind(), BOOLEAN));
}
public byte asByte() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.BIT));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, BIT));
}
public char asChar() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.CHAR));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, CHAR));
}
public short asInt2() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.INT2));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, INT2));
}
public int asInt4() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.INT4));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, INT4));
}
public long asInt8() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.INT8));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, INT8));
}
public byte [] asByteArray() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.BLOB));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, BLOB));
}
public float asFloat4() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.FLOAT4));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, FLOAT4));
}
public double asFloat8() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.FLOAT8));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, FLOAT8));
}
public String asChars() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.TEXT));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, TEXT));
}
// todo remove this
public char [] asUnicodeChars() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.TEXT));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, TEXT));
}
public byte[] asTextBytes() {
@@ -117,7 +122,7 @@ public byte[] asTextBytes() {
}
public TimeMeta asTimeMeta() {
- throw new TajoRuntimeException(new InvalidValueForCastException(type, Type.INT8));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, TajoDataTypes.Type.INT8));
}
public boolean isNumeric() {
@@ -129,7 +134,7 @@ public boolean isNumber() {
}
public boolean isReal() {
- return TajoTypeUtil.isReal(type);
+ return TajoTypeUtil.isReal(type.kind());
}
protected static void initAbortWhenDivideByZero(TajoConf tajoConf) {
@@ -140,31 +145,31 @@ protected static void initAbortWhenDivideByZero(TajoConf tajoConf) {
// belows should be extracted out of datum
public Datum and(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum or(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum plus(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum minus(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum multiply(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum divide(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum modular(Datum datum) {
- throw new InvalidOperationException(datum.type);
+ throw new InvalidOperationException(type);
}
public Datum equalsTo(Datum datum) {
@@ -184,28 +189,28 @@ public Datum notEqualsTo(Datum datum) {
}
public Datum lessThan(Datum datum) {
- if (this.type() == Type.NULL_TYPE || datum.type() == Type.NULL_TYPE) {
+ if (type.isNull() || datum.type().isNull()) {
return NullDatum.get();
}
return DatumFactory.createBool(compareTo(datum) < 0);
}
public Datum lessThanEqual(Datum datum) {
- if (this.type() == Type.NULL_TYPE || datum.type() == Type.NULL_TYPE) {
+ if (type.isNull() || datum.type().isNull()) {
return NullDatum.get();
}
return DatumFactory.createBool(compareTo(datum) <= 0);
}
public Datum greaterThan(Datum datum) {
- if (this.type() == Type.NULL_TYPE || datum.type() == Type.NULL_TYPE) {
+ if (type.isNull() || datum.type().isNull()) {
return NullDatum.get();
}
return DatumFactory.createBool(compareTo(datum) > 0);
}
public Datum greaterThanEqual(Datum datum) {
- if (this.type() == Type.NULL_TYPE || datum.type() == Type.NULL_TYPE) {
+ if (type.isNull() || datum.type().isNull()) {
return NullDatum.get();
}
return DatumFactory.createBool(compareTo(datum) >= 0);
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java b/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
index 8943642b9e..27749488a4 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
@@ -309,7 +309,7 @@ public static IntervalDatum createInterval(int month, long interval) {
}
public static DateDatum createDate(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT4:
return new DateDatum(datum.asInt4());
case INT8:
@@ -324,7 +324,7 @@ public static DateDatum createDate(Datum datum) {
}
public static TimeDatum createTime(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT8:
return new TimeDatum(datum.asInt8());
case CHAR:
@@ -340,7 +340,7 @@ public static TimeDatum createTime(Datum datum) {
}
public static TimestampDatum createTimestamp(Datum datum, @Nullable TimeZone tz) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case CHAR:
case VARCHAR:
case TEXT:
@@ -403,7 +403,7 @@ public static Datum cast(Datum operandDatum, org.apache.tajo.type.Type target, @
return DatumFactory.createFloat8(operandDatum.asFloat8());
case VARCHAR:
case TEXT:
- switch (operandDatum.type()) {
+ switch (operandDatum.kind()) {
case TIMESTAMP: {
TimestampDatum timestampDatum = (TimestampDatum)operandDatum;
if (tz != null) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java
index 5d56984c0b..5ae4e5e941 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java
@@ -20,8 +20,8 @@
import com.google.gson.annotations.Expose;
import org.apache.tajo.common.TajoDataTypes;
-import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.InvalidOperationException;
+import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.util.MurmurHash;
import org.apache.tajo.util.NumberUtil;
@@ -29,17 +29,19 @@
import java.nio.ByteBuffer;
+import static org.apache.tajo.type.Type.Float4;
+
public class Float4Datum extends NumericDatum {
private static final int size = 4;
@Expose final float val;
public Float4Datum(float val) {
- super(TajoDataTypes.Type.FLOAT4);
+ super(Float4);
this.val = val;
}
public Float4Datum(byte[] bytes) {
- super(TajoDataTypes.Type.FLOAT4);
+ super(Float4);
ByteBuffer bb = ByteBuffer.wrap(bytes);
this.val = bb.getFloat();
}
@@ -122,7 +124,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createBool(val == datum.asInt2());
case INT4:
@@ -136,13 +138,13 @@ public Datum equalsTo(Datum datum) {
case NULL_TYPE:
return datum;
default:
- throw new InvalidOperationException(datum.type());
+ throw new InvalidOperationException(datum.type);
}
}
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2: {
short another = datum.asInt2();
if (val < another) {
@@ -196,13 +198,13 @@ public int compareTo(Datum datum) {
case NULL_TYPE:
return -1;
default:
- throw new InvalidOperationException(datum.type());
+ throw new InvalidOperationException(datum.type);
}
}
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createFloat4(val + datum.asInt2());
case INT4:
@@ -220,13 +222,13 @@ public Datum plus(Datum datum) {
case NULL_TYPE:
return datum;
default:
- throw new InvalidOperationException(datum.type());
+ throw new InvalidOperationException(datum.type);
}
}
@Override
public Datum minus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createFloat4(val - datum.asInt2());
case INT4:
@@ -244,13 +246,13 @@ public Datum minus(Datum datum) {
case NULL_TYPE:
return datum;
default:
- throw new InvalidOperationException(datum.type());
+ throw new InvalidOperationException(datum.type);
}
}
@Override
public Datum multiply(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createFloat4(val * datum.asInt2());
case INT4:
@@ -273,7 +275,7 @@ public Datum multiply(Datum datum) {
@Override
public Datum divide(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
@@ -307,13 +309,13 @@ public Datum divide(Datum datum) {
case NULL_TYPE:
return datum;
default:
- throw new InvalidOperationException(datum.type());
+ throw new InvalidOperationException(datum.type);
}
}
@Override
public Datum modular(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
@@ -347,7 +349,7 @@ public Datum modular(Datum datum) {
case NULL_TYPE:
return datum;
default:
- throw new InvalidOperationException(datum.type());
+ throw new InvalidOperationException(datum.type);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java
index fdd54956fd..c2a5247c18 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java
@@ -19,7 +19,6 @@
package org.apache.tajo.datum;
import com.google.gson.annotations.Expose;
-import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.exception.InvalidOperationException;
import org.apache.tajo.util.Bytes;
import org.apache.tajo.util.MurmurHash;
@@ -28,18 +27,20 @@
import java.nio.ByteBuffer;
+import static org.apache.tajo.type.Type.Float8;
+
public class Float8Datum extends NumericDatum {
private static final int size = 8;
@Expose private final double val;
public Float8Datum(double val) {
- super(TajoDataTypes.Type.FLOAT8);
+ super(Float8);
this.val = val;
}
public Float8Datum(byte[] bytes) {
- super(TajoDataTypes.Type.FLOAT8);
+ super(Float8);
ByteBuffer bb = ByteBuffer.wrap(bytes);
this.val = bb.getDouble();
}
@@ -110,7 +111,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createBool(val == datum.asInt2());
case INT4:
@@ -130,7 +131,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2: {
short another = datum.asInt2();
if (val < another) {
@@ -190,7 +191,7 @@ public int compareTo(Datum datum) {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createFloat8(val + datum.asInt2());
case INT4:
@@ -214,7 +215,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createFloat8(val - datum.asInt2());
case INT4:
@@ -238,7 +239,7 @@ public Datum minus(Datum datum) {
@Override
public Datum multiply(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createFloat8(val * datum.asInt2());
case INT4:
@@ -261,7 +262,7 @@ public Datum multiply(Datum datum) {
@Override
public Datum divide(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
@@ -301,7 +302,7 @@ public Datum divide(Datum datum) {
@Override
public Datum modular(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java
index 5629f4124a..a5b03e6ee0 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java
@@ -19,7 +19,6 @@
package org.apache.tajo.datum;
import com.google.gson.annotations.Expose;
-import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.exception.InvalidOperationException;
import org.apache.tajo.util.MurmurHash;
import org.apache.tajo.util.NumberUtil;
@@ -27,18 +26,20 @@
import java.nio.ByteBuffer;
+import static org.apache.tajo.type.Type.Int2;
+
public class Int2Datum extends NumericDatum {
private static final int size = 2;
@Expose private final short val;
public Int2Datum(short val) {
- super(TajoDataTypes.Type.INT2);
+ super(Int2);
this.val = val;
}
public Int2Datum(byte[] bytes) {
- super(TajoDataTypes.Type.INT2);
+ super(Int2);
ByteBuffer bb = ByteBuffer.wrap(bytes);
this.val = bb.getShort();
}
@@ -112,7 +113,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createBool(val == datum.asInt2());
case INT4:
@@ -132,7 +133,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2: {
short another = datum.asInt2();
if (val < another) {
@@ -192,7 +193,7 @@ public int compareTo(Datum datum) {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt2((short) (val + datum.asInt2()));
case INT4:
@@ -216,7 +217,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt2((short) (val - datum.asInt2()));
case INT4:
@@ -240,7 +241,7 @@ public Datum minus(Datum datum) {
@Override
public Datum multiply(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt4(val * datum.asInt2());
case INT4:
@@ -263,7 +264,7 @@ public Datum multiply(Datum datum) {
@Override
public Datum divide(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
@@ -303,7 +304,7 @@ public Datum divide(Datum datum) {
@Override
public Datum modular(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java
index a45cb1e218..9128dd1012 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java
@@ -19,7 +19,6 @@
package org.apache.tajo.datum;
import com.google.gson.annotations.Expose;
-import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.exception.InvalidOperationException;
import org.apache.tajo.util.MurmurHash;
import org.apache.tajo.util.NumberUtil;
@@ -27,18 +26,20 @@
import java.nio.ByteBuffer;
+import static org.apache.tajo.type.Type.Int4;
+
public class Int4Datum extends NumericDatum {
private static final int size = 4;
@Expose private final int val;
public Int4Datum(int val) {
- super(Type.INT4);
+ super(Int4);
this.val = val;
}
public Int4Datum(byte[] bytes) {
- super(Type.INT4);
+ super(Int4);
ByteBuffer bb = ByteBuffer.wrap(bytes);
this.val = bb.getInt();
}
@@ -116,7 +117,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createBool(val == datum.asInt2());
case INT4:
@@ -136,7 +137,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2: {
short another = datum.asInt2();
if (val < another) {
@@ -196,7 +197,7 @@ public int compareTo(Datum datum) {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt4(val + datum.asInt2());
case INT4:
@@ -220,7 +221,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt4(val - datum.asInt2());
case INT4:
@@ -244,7 +245,7 @@ public Datum minus(Datum datum) {
@Override
public Datum multiply(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt4(val * datum.asInt2());
case INT4:
@@ -267,7 +268,7 @@ public Datum multiply(Datum datum) {
@Override
public Datum divide(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
@@ -307,7 +308,7 @@ public Datum divide(Datum datum) {
@Override
public Datum modular(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java b/tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java
index 86f19c761a..bda4f90be5 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java
@@ -20,8 +20,8 @@
import com.google.gson.annotations.Expose;
import org.apache.tajo.common.TajoDataTypes;
-import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.InvalidOperationException;
+import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.util.MurmurHash;
import org.apache.tajo.util.NumberUtil;
@@ -29,18 +29,20 @@
import java.nio.ByteBuffer;
+import static org.apache.tajo.type.Type.Int8;
+
public class Int8Datum extends NumericDatum {
private static final int size = 8;
@Expose private final long val;
public Int8Datum(long val) {
- super(TajoDataTypes.Type.INT8);
+ super(Int8);
this.val = val;
}
public Int8Datum(byte[] bytes) {
- super(TajoDataTypes.Type.INT8);
+ super(Int8);
ByteBuffer bb = ByteBuffer.wrap(bytes);
val = bb.getLong();
}
@@ -124,7 +126,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createBool(val == datum.asInt2());
case INT4:
@@ -144,7 +146,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2: {
short another = datum.asInt2();
if (val < another) {
@@ -205,7 +207,7 @@ public int compareTo(Datum datum) {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt8(val + datum.asInt2());
case INT4:
@@ -229,7 +231,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt8(val - datum.asInt2());
case INT4:
@@ -253,7 +255,7 @@ public Datum minus(Datum datum) {
@Override
public Datum multiply(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
return DatumFactory.createInt8(val * datum.asInt2());
case INT4:
@@ -277,7 +279,7 @@ public Datum multiply(Datum datum) {
@Override
public Datum divide(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
@@ -317,7 +319,7 @@ public Datum divide(Datum datum) {
@Override
public Datum modular(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
short paramValueI2 = datum.asInt2();
if (!validateDivideZero(paramValueI2)) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java
index 44570f36b9..5dabe50459 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java
@@ -28,6 +28,8 @@
import java.util.HashMap;
import java.util.Map;
+import static org.apache.tajo.type.Type.Interval;
+
public class IntervalDatum extends Datum {
public static final long MINUTE_MILLIS = 60 * 1000;
public static final long HOUR_MILLIS = 60 * MINUTE_MILLIS;
@@ -70,13 +72,13 @@ public IntervalDatum(long milliseconds) {
}
public IntervalDatum(int months, long milliseconds) {
- super(TajoDataTypes.Type.INTERVAL);
+ super(Interval);
this.months = months;
this.milliseconds = milliseconds;
}
public IntervalDatum(String intervalStr) {
- super(TajoDataTypes.Type.INTERVAL);
+ super(Interval);
intervalStr = intervalStr.trim();
if (intervalStr.isEmpty()) {
@@ -225,7 +227,7 @@ public long getMilliSeconds() {
@Override
public Datum plus(Datum datum) {
- switch(datum.type()) {
+ switch(datum.kind()) {
case INTERVAL:
IntervalDatum other = (IntervalDatum) datum;
return new IntervalDatum(months + other.months, milliseconds + other.milliseconds);
@@ -253,7 +255,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.INTERVAL) {
+ if (datum.kind() == TajoDataTypes.Type.INTERVAL) {
IntervalDatum other = (IntervalDatum) datum;
return new IntervalDatum(months - other.months, milliseconds - other.milliseconds);
} else {
@@ -263,7 +265,7 @@ public Datum minus(Datum datum) {
@Override
public Datum multiply(Datum datum) {
- switch(datum.type()) {
+ switch(datum.kind()) {
case INT2:
case INT4:
case INT8:
@@ -280,7 +282,7 @@ public Datum multiply(Datum datum) {
@Override
public Datum divide(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INT2:
case INT4:
case INT8:
@@ -397,7 +399,7 @@ public int size() {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.INTERVAL) {
+ if (datum.kind() == TajoDataTypes.Type.INTERVAL) {
return Longs.compare(asInt8(), datum.asInt8());
} else if (datum instanceof NullDatum || datum.isNull()) {
return -1;
@@ -408,7 +410,7 @@ public int compareTo(Datum datum) {
@Override
public Datum equalsTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.INTERVAL) {
+ if (datum.kind() == TajoDataTypes.Type.INTERVAL) {
return DatumFactory.createBool(asInt8() == datum.asInt8());
} else if (datum.isNull()) {
return datum;
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/NullDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/NullDatum.java
index de4ddcb3c7..2079953b5c 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/NullDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/NullDatum.java
@@ -18,11 +18,13 @@
package org.apache.tajo.datum;
+import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.TajoRuntimeException;
-import static org.apache.tajo.common.TajoDataTypes.Type;
+import static org.apache.tajo.type.Type.Bool;
+import static org.apache.tajo.type.Type.Null;
public class NullDatum extends Datum {
private static NullDatum instance;
@@ -32,11 +34,11 @@ public class NullDatum extends Datum {
static {
instance = new NullDatum();
- NULL_DATA_TYPE = DataType.newBuilder().setType(Type.NULL_TYPE).build();
+ NULL_DATA_TYPE = DataType.newBuilder().setType(TajoDataTypes.Type.NULL_TYPE).build();
}
private NullDatum() {
- super(Type.NULL_TYPE);
+ super(Null);
}
public static NullDatum get() {
@@ -59,7 +61,7 @@ public boolean isNotNull() {
@Override
public boolean asBool() {
- throw new TajoRuntimeException(new InvalidValueForCastException(Type.NULL_TYPE, Type.BOOLEAN));
+ throw new TajoRuntimeException(new InvalidValueForCastException(type, Bool));
}
@Override
@@ -119,7 +121,7 @@ public boolean equals(Object obj) {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == Type.NULL_TYPE) {
+ if (datum.type().isNull()) {
return 0;
} else {
return 1;
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/NumericDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/NumericDatum.java
index e0217810d1..13ce7e0fdd 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/NumericDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/NumericDatum.java
@@ -19,11 +19,11 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes;
+import org.apache.tajo.type.Type;
public abstract class NumericDatum extends Datum {
- public NumericDatum(TajoDataTypes.Type type) {
+ public NumericDatum(Type type) {
super(type);
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/ProtobufDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/ProtobufDatum.java
index 822a1e9467..9adfe4756d 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/ProtobufDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/ProtobufDatum.java
@@ -19,12 +19,14 @@
import com.google.protobuf.Message;
import org.apache.tajo.common.TajoDataTypes;
+import org.apache.tajo.type.Protobuf;
+@Deprecated
public class ProtobufDatum extends Datum {
private final Message value;
public ProtobufDatum(Message message) {
- super(TajoDataTypes.Type.PROTOBUF);
+ super(new Protobuf(null));
this.value = message;
}
@@ -44,7 +46,7 @@ public int size() {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.PROTOBUF) {
+ if (datum.kind() == TajoDataTypes.Type.PROTOBUF) {
return value.equals(((ProtobufDatum)datum).get()) ? 0 : -1;
} else {
return -1;
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
index df810fe414..cbd0ca0bd4 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
@@ -20,10 +20,9 @@
import com.google.common.primitives.UnsignedBytes;
import com.google.gson.annotations.Expose;
-
import org.apache.tajo.common.TajoDataTypes;
-import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.InvalidOperationException;
+import org.apache.tajo.exception.InvalidValueForCastException;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.util.MurmurHash;
import org.apache.tajo.util.StringUtils;
@@ -31,6 +30,8 @@
import java.nio.charset.Charset;
import java.util.Comparator;
+import static org.apache.tajo.type.Type.Text;
+
public class TextDatum extends Datum {
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
@@ -42,7 +43,7 @@ public class TextDatum extends Datum {
public static final Comparator COMPARATOR = UnsignedBytes.lexicographicalComparator();
public TextDatum(byte[] bytes) {
- super(TajoDataTypes.Type.TEXT);
+ super(Text);
this.bytes = bytes;
}
@@ -112,7 +113,7 @@ public int size() {
@Override
public int compareTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case TEXT:
case CHAR:
case BLOB:
@@ -138,7 +139,7 @@ public boolean equals(Object obj) {
@Override
public Datum equalsTo(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case TEXT:
case CHAR:
case BLOB:
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
index 57196d2470..8c98ddc0dd 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
@@ -28,12 +28,14 @@
import org.apache.tajo.util.datetime.DateTimeUtil;
import org.apache.tajo.util.datetime.TimeMeta;
+import static org.apache.tajo.type.Type.Time;
+
public class TimeDatum extends Datum {
public static final int SIZE = 8;
private final long time;
public TimeDatum(long time) {
- super(TajoDataTypes.Type.TIME);
+ super(Time);
this.time = time;
}
@@ -108,7 +110,7 @@ public int size() {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INTERVAL: {
IntervalDatum interval = ((IntervalDatum) datum);
TimeMeta tm = asTimeMeta();
@@ -134,7 +136,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch(datum.type()) {
+ switch(datum.kind()) {
case INTERVAL:
IntervalDatum interval = ((IntervalDatum)datum);
TimeMeta tm = asTimeMeta();
@@ -149,7 +151,7 @@ public Datum minus(Datum datum) {
@Override
public Datum equalsTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.TIME) {
+ if (datum.kind() == TajoDataTypes.Type.TIME) {
return DatumFactory.createBool(time == (((TimeDatum) datum).time));
} else if (datum.isNull()) {
return datum;
@@ -160,7 +162,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.TIME) {
+ if (datum.kind() == TajoDataTypes.Type.TIME) {
TimeDatum another = (TimeDatum)datum;
return Longs.compare(time, another.time);
} else if (datum.isNull()) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java b/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
index 782aab41cf..3854de9ad0 100644
--- a/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
+++ b/tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
@@ -28,6 +28,8 @@
import java.util.TimeZone;
+import static org.apache.tajo.type.Type.Timestamp;
+
public class TimestampDatum extends Datum {
public static final int SIZE = 8;
@@ -38,7 +40,7 @@ public class TimestampDatum extends Datum {
* @param timestamp UTC based Julian time microseconds
*/
public TimestampDatum(long timestamp) {
- super(TajoDataTypes.Type.TIMESTAMP);
+ super(Timestamp);
this.timestamp = timestamp;
}
@@ -169,7 +171,7 @@ public byte[] asTextBytes() {
@Override
public Datum equalsTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.TIMESTAMP) {
+ if (datum.kind() == TajoDataTypes.Type.TIMESTAMP) {
return timestamp == datum.asInt8() ? BooleanDatum.TRUE : BooleanDatum.FALSE;
} else if (datum.isNull()) {
return datum;
@@ -180,7 +182,7 @@ public Datum equalsTo(Datum datum) {
@Override
public int compareTo(Datum datum) {
- if (datum.type() == TajoDataTypes.Type.TIMESTAMP) {
+ if (datum.kind() == TajoDataTypes.Type.TIMESTAMP) {
TimestampDatum another = (TimestampDatum) datum;
return Longs.compare(timestamp, another.timestamp);
} else if (datum.isNull()) {
@@ -202,7 +204,7 @@ public boolean equals(Object obj) {
@Override
public Datum plus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INTERVAL:
IntervalDatum interval = (IntervalDatum) datum;
TimeMeta tm = asTimeMeta();
@@ -220,7 +222,7 @@ public Datum plus(Datum datum) {
@Override
public Datum minus(Datum datum) {
- switch (datum.type()) {
+ switch (datum.kind()) {
case INTERVAL:
IntervalDatum interval = (IntervalDatum) datum;
TimeMeta tm = asTimeMeta();
diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/InvalidOperationException.java b/tajo-common/src/main/java/org/apache/tajo/exception/InvalidOperationException.java
index 5e48113d05..d97a0d18f3 100644
--- a/tajo-common/src/main/java/org/apache/tajo/exception/InvalidOperationException.java
+++ b/tajo-common/src/main/java/org/apache/tajo/exception/InvalidOperationException.java
@@ -18,8 +18,6 @@
package org.apache.tajo.exception;
-import static org.apache.tajo.common.TajoDataTypes.Type;
-
public class InvalidOperationException extends RuntimeException {
private static final long serialVersionUID = -7689027447969916148L;
@@ -32,8 +30,8 @@ public InvalidOperationException() {
public InvalidOperationException(String message) {
super(message);
}
-
- public InvalidOperationException(Type type) {
- super("Cannot compare to " + type + " type datum");
+
+ public InvalidOperationException(org.apache.tajo.type.Type type) {
+ super("Cannot compare to " + type + " type datum");
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/InvalidValueForCastException.java b/tajo-common/src/main/java/org/apache/tajo/exception/InvalidValueForCastException.java
index 63ee354dfc..f1152b2904 100644
--- a/tajo-common/src/main/java/org/apache/tajo/exception/InvalidValueForCastException.java
+++ b/tajo-common/src/main/java/org/apache/tajo/exception/InvalidValueForCastException.java
@@ -38,6 +38,10 @@ public InvalidValueForCastException(TajoDataTypes.Type src, TajoDataTypes.Type t
super(Errors.ResultCode.INVALID_VALUE_FOR_CAST, src.name(), target.name());
}
+ public InvalidValueForCastException(Type src, TajoDataTypes.Type target) {
+ super(Errors.ResultCode.INVALID_VALUE_FOR_CAST, src.kind().name(), target.name());
+ }
+
public InvalidValueForCastException(Type src, Type target) {
super(Errors.ResultCode.INVALID_VALUE_FOR_CAST, src.kind().name(), target.kind().name());
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java b/tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java
index b9d8aef0c9..9cc246c400 100644
--- a/tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java
+++ b/tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java
@@ -21,6 +21,7 @@
import com.google.gson.*;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.datum.*;
+import org.apache.tajo.type.TypeStringEncoder;
import java.lang.reflect.Type;
@@ -30,9 +31,9 @@ public class DatumAdapter implements GsonSerDerAdapter {
public Datum deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
JsonObject jsonObject = json.getAsJsonObject();
- String typeName = CommonGsonHelper.getOrDie(jsonObject, "type").getAsString();
- TajoDataTypes.Type type = TajoDataTypes.Type.valueOf(typeName);
- switch (type) {
+ String typeStr = CommonGsonHelper.getOrDie(jsonObject, "type").getAsString();
+ org.apache.tajo.type.Type type = TypeStringEncoder.decode(typeStr);
+ switch (type.kind()) {
case DATE:
return new DateDatum(CommonGsonHelper.getOrDie(jsonObject, "value").getAsInt());
case TIME:
@@ -46,15 +47,15 @@ public Datum deserialize(JsonElement json, Type typeOfT,
return new AnyDatum(deserialize(CommonGsonHelper.getOrDie(jsonObject, "actual"), typeOfT, context));
default:
return context.deserialize(CommonGsonHelper.getOrDie(jsonObject, "body"),
- DatumFactory.getDatumClass(TajoDataTypes.Type.valueOf(typeName)));
+ DatumFactory.getDatumClass(TajoDataTypes.Type.valueOf(type.kind().name())));
}
}
@Override
public JsonElement serialize(Datum src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject jsonObj = new JsonObject();
- jsonObj.addProperty("type", src.type().name());
- switch (src.type()) {
+ jsonObj.addProperty("type", TypeStringEncoder.encode(src.type()));
+ switch (src.kind()) {
case DATE:
jsonObj.addProperty("value", src.asInt4());
break;
diff --git a/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java b/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
index dc7c15f245..9dc05882ab 100644
--- a/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
+++ b/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java
@@ -90,7 +90,7 @@ public Datum asDatum(int fieldId) {
@Override
public TajoDataTypes.Type type(int fieldId) {
- return values[fieldId].type();
+ return values[fieldId].kind();
}
@Override
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Any.java b/tajo-common/src/main/java/org/apache/tajo/type/Any.java
index 342fdb68f7..e6f9f6f3a2 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Any.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Any.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.ANY;
public class Any extends Type {
- public Any() {
+ Any() {
super(ANY);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Array.java b/tajo-common/src/main/java/org/apache/tajo/type/Array.java
index 3432238115..67be256bf0 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Array.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Array.java
@@ -24,7 +24,7 @@
public class Array extends TypeParamterizedType {
- public Array(Type elementType) {
+ Array(Type elementType) {
super(ARRAY, ImmutableList.of(elementType));
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Bit.java b/tajo-common/src/main/java/org/apache/tajo/type/Bit.java
new file mode 100644
index 0000000000..befabda13b
--- /dev/null
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Bit.java
@@ -0,0 +1,27 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tajo.type;
+
+import static org.apache.tajo.common.TajoDataTypes.Type.BIT;
+
+public class Bit extends Type {
+ Bit() {
+ super(BIT);
+ }
+}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Blob.java b/tajo-common/src/main/java/org/apache/tajo/type/Blob.java
index 360ea13fba..d25084200a 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Blob.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Blob.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.BLOB;
public class Blob extends Type {
- public Blob() {
+ Blob() {
super(BLOB);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Bool.java b/tajo-common/src/main/java/org/apache/tajo/type/Bool.java
index 923e8e90ec..7a152146fb 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Bool.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Bool.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.BOOLEAN;
public class Bool extends Type {
- public Bool() {
+ Bool() {
super(BOOLEAN);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Char.java b/tajo-common/src/main/java/org/apache/tajo/type/Char.java
index 586775ea0d..f2679ae05b 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Char.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Char.java
@@ -23,7 +23,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.CHAR;
public class Char extends ValueParamterizedType {
- public Char(int length) {
+ Char(int length) {
super(CHAR, ImmutableList.of(length));
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Date.java b/tajo-common/src/main/java/org/apache/tajo/type/Date.java
index a68ab97a49..61cc7cc190 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Date.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Date.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.DATE;
public class Date extends Type {
- public Date() {
+ Date() {
super(DATE);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Float4.java b/tajo-common/src/main/java/org/apache/tajo/type/Float4.java
index b8c82181ee..58e5bb06f5 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Float4.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Float4.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.FLOAT4;
public class Float4 extends Type {
- public Float4() {
+ Float4() {
super(FLOAT4);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Float8.java b/tajo-common/src/main/java/org/apache/tajo/type/Float8.java
index f36fac87c8..6cb5d90a3a 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Float8.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Float8.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.FLOAT8;
public class Float8 extends Type {
- public Float8() {
+ Float8() {
super(FLOAT8);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Int1.java b/tajo-common/src/main/java/org/apache/tajo/type/Int1.java
index d86d36e196..bb7c310d02 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Int1.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Int1.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.INT1;
public class Int1 extends Type {
- public Int1() {
+ Int1() {
super(INT1);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Int2.java b/tajo-common/src/main/java/org/apache/tajo/type/Int2.java
index e7c221541d..315fed5e3a 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Int2.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Int2.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.INT2;
public class Int2 extends Type {
- public Int2() {
+ Int2() {
super(INT2);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Int4.java b/tajo-common/src/main/java/org/apache/tajo/type/Int4.java
index e8db7841a0..2aab6c45ca 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Int4.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Int4.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.INT4;
public class Int4 extends Type {
- public Int4() {
+ Int4() {
super(INT4);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Int8.java b/tajo-common/src/main/java/org/apache/tajo/type/Int8.java
index 999e9acd97..d16aadaecf 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Int8.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Int8.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.INT8;
public class Int8 extends Type {
- public Int8() {
+ Int8() {
super(INT8);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Interval.java b/tajo-common/src/main/java/org/apache/tajo/type/Interval.java
index d6dc17eda8..5ca81777c6 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Interval.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Interval.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.INTERVAL;
public class Interval extends Type {
- public Interval() {
+ Interval() {
super(INTERVAL);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Map.java b/tajo-common/src/main/java/org/apache/tajo/type/Map.java
index 786d6af4ff..4738b9bbae 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Map.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Map.java
@@ -23,7 +23,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.MAP;
public class Map extends TypeParamterizedType {
- public Map(Type keyType, Type valueType) {
+ Map(Type keyType, Type valueType) {
super(MAP, ImmutableList.of(keyType, valueType));
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Null.java b/tajo-common/src/main/java/org/apache/tajo/type/Null.java
index 74cf052a0b..78a4fbe74f 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Null.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Null.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.NULL_TYPE;
public class Null extends Type {
- public Null() {
+ Null() {
super(NULL_TYPE);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Numeric.java b/tajo-common/src/main/java/org/apache/tajo/type/Numeric.java
index c21325dde1..8f9f9f91f2 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Numeric.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Numeric.java
@@ -24,7 +24,7 @@
public class Numeric extends ValueParamterizedType {
- public Numeric(int precision, int scale) {
+ Numeric(int precision, int scale) {
super(NUMERIC, ImmutableList.of(precision, scale));
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Record.java b/tajo-common/src/main/java/org/apache/tajo/type/Record.java
index 46d7e1902c..d8492c5605 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Record.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Record.java
@@ -35,7 +35,7 @@
public class Record extends Type implements Iterable {
private final ImmutableList fields;
- public Record(Collection fields) {
+ Record(Collection fields) {
super(RECORD);
this.fields = ImmutableList.copyOf(fields);
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Text.java b/tajo-common/src/main/java/org/apache/tajo/type/Text.java
index aab49a497d..893331426e 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Text.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Text.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.TEXT;
public class Text extends Type {
- public Text() {
+ Text() {
super(TEXT);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Time.java b/tajo-common/src/main/java/org/apache/tajo/type/Time.java
index 12fe5f82db..9ad94dd109 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Time.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Time.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.TIME;
public class Time extends Type {
- public Time() {
+ Time() {
super(TIME);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Timestamp.java b/tajo-common/src/main/java/org/apache/tajo/type/Timestamp.java
index 577f877419..36b1edc712 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Timestamp.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Timestamp.java
@@ -21,7 +21,7 @@
import static org.apache.tajo.common.TajoDataTypes.Type.TIMESTAMP;
public class Timestamp extends Type {
- public Timestamp() {
+ Timestamp() {
super(TIMESTAMP);
}
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Type.java b/tajo-common/src/main/java/org/apache/tajo/type/Type.java
index 5479658e37..75d900025f 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Type.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Type.java
@@ -34,8 +34,12 @@
*/
public abstract class Type implements Cloneable, ProtoObject {
+ public static int DEFAULT_PRECISION = 0;
+ public static int DEFAULT_SCALE = 0;
+
// No paramter types
public static final Any Any = new Any();
+ public static final Bit Bit = new Bit();
public static final Null Null = new Null();
public static final Bool Bool = new Bool();
public static final Int1 Int1 = new Int1();
@@ -44,6 +48,7 @@ public abstract class Type implements Cloneable, ProtoObject {
public static final Int8 Int8 = new Int8();
public static final Float4 Float4 = new Float4();
public static final Float8 Float8 = new Float8();
+ public static final Numeric Numeric = new Numeric(DEFAULT_PRECISION, DEFAULT_SCALE);
public static final Date Date = new Date();
public static final Time Time = new Time();
public static final Timestamp Timestamp = new Timestamp();
@@ -96,19 +101,16 @@ public String toString() {
return typeName(kind());
}
+ public boolean isAny() {
+ return this.kind() == TajoDataTypes.Type.ANY;
+ }
+
public boolean isStruct() {
return this.kind() == TajoDataTypes.Type.RECORD;
}
public boolean isNull() { return this.kind() == TajoDataTypes.Type.NULL_TYPE; }
- public static int DEFAULT_PRECISION = 0;
- public static int DEFAULT_SCALE = 0;
-
- public static Numeric Numeric() {
- return new Numeric(DEFAULT_PRECISION, DEFAULT_SCALE);
- }
-
public static Numeric Numeric(int precision) {
return new Numeric(precision, DEFAULT_SCALE);
}
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/TypeFactory.java b/tajo-common/src/main/java/org/apache/tajo/type/TypeFactory.java
index 24c46a9e14..f8f1b43d48 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/TypeFactory.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/TypeFactory.java
@@ -132,7 +132,7 @@ public static Type create(TajoDataTypes.Type baseType,
case FLOAT8: return Type.Float8;
case NUMERIC: {
if (valueParams.size() == 0) {
- return Numeric.Numeric();
+ return Type.Numeric;
} else {
for (Object p : valueParams) {
diff --git a/tajo-common/src/main/java/org/apache/tajo/type/Varchar.java b/tajo-common/src/main/java/org/apache/tajo/type/Varchar.java
index 61e4e8563f..e96bc987a2 100644
--- a/tajo-common/src/main/java/org/apache/tajo/type/Varchar.java
+++ b/tajo-common/src/main/java/org/apache/tajo/type/Varchar.java
@@ -24,7 +24,7 @@
public class Varchar extends ValueParamterizedType {
- public Varchar(int length) {
+ Varchar(int length) {
super(VARCHAR, ImmutableList.of(length));
}
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestBitDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestBitDatum.java
index 812c4c7fbd..ac6a5584dc 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestBitDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestBitDatum.java
@@ -18,22 +18,14 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
+import org.apache.tajo.type.Type;
import org.apache.tajo.util.NumberUtil;
import org.junit.Test;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
public class TestBitDatum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createBit((byte) 1);
- assertEquals(Type.BIT, d.type());
- }
-
@Test
public final void testAsInt() {
Datum d = DatumFactory.createBit((byte) 5);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestBoolDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestBoolDatum.java
index dd722ffbef..7c928b5a98 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestBoolDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestBoolDatum.java
@@ -18,7 +18,6 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
import org.junit.Test;
import static org.junit.Assert.assertArrayEquals;
@@ -26,12 +25,6 @@
public class TestBoolDatum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createBool(true);
- assertEquals(Type.BOOLEAN, d.type());
- }
-
@Test
public final void testAsBool() {
Datum trueDatum = DatumFactory.createBool(true);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestBytesDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestBytesDatum.java
index c3a0e84757..12f924153f 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestBytesDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestBytesDatum.java
@@ -18,23 +18,16 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
-import org.apache.tajo.json.CommonGsonHelper;
import org.apache.tajo.util.Bytes;
import org.junit.Test;
import java.nio.ByteBuffer;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
public class TestBytesDatum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createBlob("12345".getBytes());
- assertEquals(Type.BLOB, d.type());
- }
-
@Test
public final void testAsChars() {
Datum d = DatumFactory.createBlob("12345".getBytes());
@@ -46,14 +39,6 @@ public final void testSize() {
Datum d = DatumFactory.createBlob("12345".getBytes());
assertEquals(5, d.size());
}
-
- @Test
- public final void testJson() {
- Datum d = DatumFactory.createBlob("12345".getBytes());
- String json = d.toJson();
- Datum fromJson = CommonGsonHelper.fromJson(json, Datum.class);
- assertTrue(d.equalsTo(fromJson).asBool());
- }
@Test
public final void testAsTextBytes() {
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestCharDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestCharDatum.java
index bb22d5cc46..e8b2999d11 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestCharDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestCharDatum.java
@@ -18,9 +18,9 @@
package org.apache.tajo.datum;
+import org.apache.tajo.type.Type;
import org.junit.Test;
-import static org.apache.tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.*;
public class TestCharDatum {
@@ -28,7 +28,7 @@ public class TestCharDatum {
@Test
public final void testType() {
Datum d = DatumFactory.createChar((char) 1);
- assertEquals(Type.CHAR, d.type());
+ assertEquals(Type.Char(1), d.type());
}
@Test
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java
index c7014a69c6..9e289e9701 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java
@@ -18,23 +18,17 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.json.CommonGsonHelper;
+import org.apache.tajo.type.Type;
import org.junit.Test;
+import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
-import static org.hamcrest.CoreMatchers.*;
public class TestDateDatum {
private static String DATE = "1980-04-01";
- @Test
- public final void testType() {
- Datum d = DatumFactory.createDate(DATE);
- assertEquals(Type.DATE, d.type());
- }
-
@Test
public final void testAsInt4() {
Datum d = DatumFactory.createDate(DATE);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestDatum.java
index 9a0b654423..2e71a0fb72 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestDatum.java
@@ -18,8 +18,8 @@
package org.apache.tajo.datum;
+import org.apache.tajo.type.Type;
import org.junit.Test;
-import org.apache.tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -35,35 +35,35 @@ public final void testPlusDatumDatum() {
x = DatumFactory.createInt4(1);
y = DatumFactory.createInt4(2);
z = x.plus(y);
- assertEquals(z.type(), Type.INT4);
+ assertEquals(z.type(), Type.Int4);
assertEquals(z.asInt4(),3);
z = y.plus(x);
- assertEquals(z.type(),Type.INT4);
+ assertEquals(z.type(),Type.Int4);
assertEquals(z.asInt4(),3);
x = DatumFactory.createInt4(1);
y = DatumFactory.createInt8(2l);
z = x.plus(y);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),3l);
z = y.plus(x);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),3l);
y = DatumFactory.createFloat4(2.5f);
z = x.plus(y);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == 3.5f);
z = y.plus(x);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertEquals(z.asInt4(),3);
y = DatumFactory.createFloat8(4.5d);
z = x.plus(y);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 5.5d);
z = y.plus(x);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 5.5d);
}
@@ -76,34 +76,34 @@ public final void testMinusDatumDatum() {
x = DatumFactory.createInt4(5);
y = DatumFactory.createInt4(2);
z = x.minus(y);
- assertEquals(z.type(),Type.INT4);
+ assertEquals(z.type(),Type.Int4);
assertEquals(z.asInt4(),3);
z = y.minus(x);
- assertEquals(z.type(),Type.INT4);
+ assertEquals(z.type(),Type.Int4);
assertEquals(z.asInt4(),-3);
y = DatumFactory.createInt8(2l);
z = x.minus(y);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),3l);
z = y.minus(x);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),-3l);
y = DatumFactory.createFloat4(2.5f);
z = x.minus(y);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == 2.5f);
z = y.minus(x);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == -2.5f);
y = DatumFactory.createFloat8(4.5d);
z = x.minus(y);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 0.5d);
z = y.minus(x);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == -0.5d);
}
@@ -116,34 +116,34 @@ public final void testMultiplyDatumDatum() {
x = DatumFactory.createInt4(5);
y = DatumFactory.createInt4(2);
z = x.multiply(y);
- assertEquals(z.type(),Type.INT4);
+ assertEquals(z.type(),Type.Int4);
assertEquals(z.asInt4(),10);
z = y.multiply(x);
- assertEquals(z.type(),Type.INT4);
+ assertEquals(z.type(),Type.Int4);
assertEquals(z.asInt4(),10);
y = DatumFactory.createInt8(2l);
z = x.multiply(y);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),10l);
z = y.multiply(x);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),10l);
y = DatumFactory.createFloat4(2.5f);
z = x.multiply(y);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == 12.5f);
z = y.multiply(x);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == 12.5f);
y = DatumFactory.createFloat8(4.5d);
z = x.multiply(y);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 22.5d);
z = y.multiply(x);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 22.5d);
}
@@ -156,34 +156,34 @@ public final void testDivideDatumDatum() {
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(3);
z = x.divide(y);
- assertEquals(z.type(), Type.INT4);
+ assertEquals(z.type(), Type.Int4);
assertEquals(z.asInt4(),2);
z = y.divide(x);
- assertEquals(z.type(),Type.INT4);
+ assertEquals(z.type(),Type.Int4);
assertTrue(z.asInt4() == 0);
y = DatumFactory.createInt8(3l);
z = x.divide(y);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),2l);
z = y.divide(x);
- assertEquals(z.type(),Type.INT8);
+ assertEquals(z.type(),Type.Int8);
assertEquals(z.asInt8(),0l);
y = DatumFactory.createFloat4(3f);
z = x.divide(y);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == 2.0f);
z = y.divide(x);
- assertEquals(z.type(),Type.FLOAT4);
+ assertEquals(z.type(),Type.Float4);
assertTrue(z.asFloat4() == 0.5f);
y = DatumFactory.createFloat8(3d);
z = x.divide(y);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 2.0d);
z = y.divide(x);
- assertEquals(z.type(),Type.FLOAT8);
+ assertEquals(z.type(),Type.Float8);
assertTrue(z.asFloat8() == 0.5d);
}
@@ -196,28 +196,28 @@ public final void testEqualToDatum() {
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(3);
z = x.equalsTo(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),false);
z = y.equalsTo(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), false);
x = DatumFactory.createFloat4(3.27f);
y = DatumFactory.createFloat4(3.27f);
z = x.equalsTo(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),true);
z = y.equalsTo(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), true);
x = DatumFactory.createInt8(123456789012345l);
y = DatumFactory.createInt8(123456789012345l);
z = x.equalsTo(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),true);
z = y.equalsTo(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), true);
}
@@ -230,10 +230,10 @@ public final void testLessThanDatum() {
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(3);
z = x.lessThan(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),false);
z = y.lessThan(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), true);
}
@@ -246,19 +246,19 @@ public final void testLessThanEqualsDatum() {
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(3);
z = x.lessThanEqual(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),false);
z = y.lessThanEqual(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), true);
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(6);
z = x.lessThanEqual(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),true);
z = y.lessThanEqual(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), true);
}
@@ -271,19 +271,19 @@ public final void testgreaterThanDatum() {
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(3);
z = x.greaterThan(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),true);
z = y.greaterThan(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), false);
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(6);
z = x.greaterThan(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),false);
z = y.greaterThan(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), false);
}
@@ -296,19 +296,19 @@ public final void testgreaterThanEqualsDatum() {
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(3);
z = x.greaterThanEqual(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),true);
z = y.greaterThanEqual(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), false);
x = DatumFactory.createInt4(6);
y = DatumFactory.createInt4(6);
z = x.greaterThanEqual(y);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(),true);
z = y.greaterThanEqual(x);
- assertEquals(z.type(),Type.BOOLEAN);
+ assertEquals(z.type(),Type.Bool);
assertEquals(z.asBool(), true);
}
}
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestDatumFactory.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestDatumFactory.java
index ffb3a30266..2f96aa9f46 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestDatumFactory.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestDatumFactory.java
@@ -18,8 +18,8 @@
package org.apache.tajo.datum;
+import org.apache.tajo.type.Type;
import org.junit.Test;
-import org.apache.tajo.common.TajoDataTypes.Type;
import static org.junit.Assert.assertEquals;
@@ -28,48 +28,48 @@ public class TestDatumFactory {
@Test
public final void testCreateBit() {
Datum d = DatumFactory.createBit((byte) 5);
- assertEquals(Type.BIT, d.type());
+ assertEquals(Type.Bit, d.type());
}
@Test
public final void testCreateInt2() {
Datum d = DatumFactory.createInt2((short) 5);
- assertEquals(Type.INT2, d.type());
+ assertEquals(Type.Int2, d.type());
}
@Test
public final void testCreateInt4() {
Datum d = DatumFactory.createInt4(5);
- assertEquals(Type.INT4, d.type());
+ assertEquals(Type.Int4, d.type());
}
@Test
public final void testCreateInt8() {
Datum d = DatumFactory.createInt8((long) 5);
- assertEquals(Type.INT8, d.type());
+ assertEquals(Type.Int8, d.type());
}
@Test
public final void testCreateFloat4() {
Datum d = DatumFactory.createFloat4(5.0f);
- assertEquals(Type.FLOAT4, d.type());
+ assertEquals(Type.Float4, d.type());
}
@Test
public final void testCreateFloat8() {
Datum d = DatumFactory.createFloat8(5.0d);
- assertEquals(Type.FLOAT8, d.type());
+ assertEquals(Type.Float8, d.type());
}
@Test
public final void testCreateBoolean() {
Datum d = DatumFactory.createBool(true);
- assertEquals(Type.BOOLEAN, d.type());
+ assertEquals(Type.Bool, d.type());
}
@Test
public final void testCreateString() {
Datum d = DatumFactory.createText("12345a");
- assertEquals(Type.TEXT, d.type());
+ assertEquals(Type.Text, d.type());
}
}
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestFloat8Datum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestFloat8Datum.java
index b2b49f277f..1d4ffb8eb9 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestFloat8Datum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestFloat8Datum.java
@@ -27,12 +27,6 @@
public class TestFloat8Datum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createFloat8(1d);
- assertEquals(Type.FLOAT8, d.type());
- }
-
@Test
public final void testAsInt4() {
Datum d = DatumFactory.createFloat8(5d);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestFloatDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestFloatDatum.java
index cd92dda70f..417de83fa5 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestFloatDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestFloatDatum.java
@@ -27,12 +27,6 @@
public class TestFloatDatum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createFloat4(1f);
- assertEquals(Type.FLOAT4, d.type());
- }
-
@Test
public final void testAsInt() {
Datum d = DatumFactory.createFloat4(5f);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestInt2Datum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestInt2Datum.java
index 6af97000e2..e92f0d2c0e 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestInt2Datum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestInt2Datum.java
@@ -18,19 +18,12 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestInt2Datum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createInt2((short) 1);
- assertEquals(d.type(), Type.INT2);
- }
-
@Test
public final void testAsInt4() {
Datum d = DatumFactory.createInt2((short) 5);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestInt4Datum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestInt4Datum.java
index 294f8bb05a..ca8daa770c 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestInt4Datum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestInt4Datum.java
@@ -18,19 +18,12 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestInt4Datum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createInt4(1);
- assertEquals(TajoDataTypes.Type.INT4, d.type());
- }
-
@Test
public final void testAsInt() {
Datum d = DatumFactory.createInt4(5);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestInt8Datum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestInt8Datum.java
index 7c07114e1a..e625556b64 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestInt8Datum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestInt8Datum.java
@@ -19,20 +19,11 @@
package org.apache.tajo.datum;
import org.junit.Test;
-import org.apache.tajo.common.TajoDataTypes.Type;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
public class TestInt8Datum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createInt8(1l);
- assertEquals(d.type(), Type.INT8);
- }
-
@Test
public final void testAsInt() {
Datum d = DatumFactory.createInt8(5l);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java
index b319c9cd64..5f7e074a9c 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java
@@ -20,6 +20,7 @@
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.exception.InvalidOperationException;
+import org.apache.tajo.type.Type;
import org.apache.tajo.util.datetime.DateTimeUtil;
import org.junit.Test;
@@ -68,7 +69,7 @@ public final void testOperation() throws Exception {
for (int i = 0; i < datums.length; i++) {
Datum result = datum.plus(datums[i]);
- assertEquals(TajoDataTypes.Type.DATE, result.type());
+ assertEquals(Type.Date, result.type());
assertEquals("date '2001-09-28' + " + datums[i].asChars() + "(" + i + " th test)", "2001-10-05", result.asChars());
}
@@ -76,38 +77,38 @@ public final void testOperation() throws Exception {
// date '2001-09-28' + interval '1 hour' ==> timestamp '2001-09-28 01:00:00'
datum = DatumFactory.createDate(2001, 9, 28);
Datum result = datum.plus(new IntervalDatum(60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-28 01:00:00", null), result);
// interval '1 hour' + date '2001-09-28' ==> timestamp '2001-09-28 01:00:00'
datum = new IntervalDatum(60 * 60 * 1000);
result = datum.plus(DatumFactory.createDate(2001, 9, 28));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-28 01:00:00", null), result);
// date '2001-09-28' + time '03:00' ==> timestamp '2001-09-28 03:00:00'
datum = DatumFactory.createDate(2001, 9, 28);
TimeDatum time = new TimeDatum(DateTimeUtil.toTime(3, 0, 0, 0));
result = datum.plus(time);
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-28 03:00:00", null), result);
// interval '1 day' + interval '1 hour' interval '1 day 01:00:00'
datum = new IntervalDatum(IntervalDatum.DAY_MILLIS);
result = datum.plus(new IntervalDatum(0, 1 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.INTERVAL, result.type());
+ assertEquals(Type.Interval, result.type());
assertEquals("1 day 01:00:00", result.asChars());
// timestamp '2001-09-28 01:00' + interval '23 hours' ==> timestamp '2001-09-29 00:00:00'
datum = new TimestampDatum(DateTimeUtil.toJulianTimestamp(2001, 9, 28, 1, 0, 0, 0));
result = datum.plus(new IntervalDatum(23 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-29 00:00:00", null), result);
// time '01:00' + interval '3 hours' ==> time '04:00:00'
datum = new TimeDatum(DateTimeUtil.toTime(1, 0, 0, 0));
result = datum.plus(new IntervalDatum(3 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIME, result.type());
+ assertEquals(Type.Time, result.type());
assertEquals(new TimeDatum(DateTimeUtil.toTime(4, 0, 0, 0)), result);
// - interval '23 hours' ==> interval '-23:00:00'
@@ -116,59 +117,59 @@ public final void testOperation() throws Exception {
// date '2001-10-01' - date '2001-09-28' ==> integer '3'
datum = DatumFactory.createDate(2001, 10, 1);
result = datum.minus(DatumFactory.createDate(2001, 9, 28));
- assertEquals(TajoDataTypes.Type.INT4, result.type());
+ assertEquals(Type.Int4, result.type());
assertEquals(new Int4Datum(3), result);
// date '2001-10-01' - integer '7' ==> date '2001-09-24'
datum = DatumFactory.createDate(2001, 10, 1);
for (Datum eachDatum : datums) {
Datum result2 = datum.minus(eachDatum);
- assertEquals(TajoDataTypes.Type.DATE, result2.type());
+ assertEquals(Type.Date, result2.type());
assertEquals(DatumFactory.createDate(2001, 9, 24), result2);
}
// date '2001-09-28' - interval '1 hour' ==> timestamp '2001-09-27 23:00:00'
datum = DatumFactory.createDate(2001, 9, 28);
result = datum.minus(new IntervalDatum(1 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-27 23:00:00", null), result);
// date '2001-09-28' - interval '1 day 1 hour' ==> timestamp '2001-09-26 23:00:00'
// In this case all datums are UTC
datum = DatumFactory.createDate(2001, 9, 28);
result = datum.minus(new IntervalDatum(IntervalDatum.DAY_MILLIS + 1 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-26 23:00:00", null), result);
// time '05:00' - time '03:00' ==> interval '02:00:00'
datum = new TimeDatum(DateTimeUtil.toTime(5, 0, 0, 0));
result = datum.minus(new TimeDatum(DateTimeUtil.toTime(3, 0, 0, 0)));
- assertEquals(TajoDataTypes.Type.INTERVAL, result.type());
+ assertEquals(Type.Interval, result.type());
assertEquals(new IntervalDatum(2 * 60 * 60 * 1000), result);
// time '05:00' - interval '2 hours' ==> time '03:00:00'
datum = new TimeDatum(DateTimeUtil.toTime(5, 0, 0, 0));
result = datum.minus(new IntervalDatum(2 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIME, result.type());
+ assertEquals(Type.Time, result.type());
assertEquals(new TimeDatum(DateTimeUtil.toTime(3, 0, 0, 0)), result);
// timestamp '2001-09-28 23:00' - interval '23 hours' ==> timestamp '2001-09-28 00:00:00'
// In this case all datums are UTC
datum = new TimestampDatum(DateTimeUtil.toJulianTimestamp(2001, 9, 28, 23, 0, 0, 0));
result = datum.minus(new IntervalDatum(23 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-28 00:00:00", null), result);
// interval '1 day' - interval '1 hour' ==> interval '1 day -01:00:00'
datum = new IntervalDatum(IntervalDatum.DAY_MILLIS);
result = datum.minus(new IntervalDatum(1 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.INTERVAL, result.type());
+ assertEquals(Type.Interval, result.type());
assertEquals(new IntervalDatum(23 * 60 * 60 * 1000), result);
// timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' ==> interval '1 day 15:00:00'
datum = new TimestampDatum(DateTimeUtil.toJulianTimestamp(2001, 9, 29, 3, 0, 0, 0));
result = datum.minus(new TimestampDatum(DateTimeUtil.toJulianTimestamp(2001, 9, 27, 12, 0, 0, 0)));
- assertEquals(TajoDataTypes.Type.INTERVAL, result.type());
+ assertEquals(Type.Interval, result.type());
assertEquals(new IntervalDatum(IntervalDatum.DAY_MILLIS + 15 * 60 * 60 * 1000), result);
// 900 * interval '1 second' ==> interval '00:15:00'
@@ -178,31 +179,31 @@ public final void testOperation() throws Exception {
datum = new IntervalDatum(1000);
for (Datum aDatum900 : datum900) {
Datum result2 = datum.multiply(aDatum900);
- assertEquals(TajoDataTypes.Type.INTERVAL, result2.type());
+ assertEquals(Type.Interval, result2.type());
assertEquals(new IntervalDatum(15 * 60 * 1000), result2);
result2 = aDatum900.multiply(datum);
- assertEquals(TajoDataTypes.Type.INTERVAL, result2.type());
+ assertEquals(Type.Interval, result2.type());
assertEquals(new IntervalDatum(15 * 60 * 1000), result2);
}
// double precision '3.5' * interval '1 hour' ==> interval '03:30:00'
datum = new Float8Datum(3.5f);
result = datum.multiply(new IntervalDatum(1 * 60 * 60 * 1000));
- assertEquals(TajoDataTypes.Type.INTERVAL, result.type());
+ assertEquals(Type.Interval, result.type());
assertEquals(new IntervalDatum(3 * 60 * 60 * 1000 + 30 * 60 * 1000), result);
// interval '1 hour' / double precision '1.5' ==> interval '00:40:00'
datum = new IntervalDatum(1 * 60 * 60 * 1000);
result = datum.divide(new Float8Datum(1.5f));
- assertEquals(TajoDataTypes.Type.INTERVAL, result.type());
+ assertEquals(Type.Interval, result.type());
assertEquals(new IntervalDatum(40 * 60 * 1000), result);
// timestamp '2001-08-31 01:00:00' + interval '1 mons' ==> timestamp 2001-09-30 01:00:00
// In this case all datums are UTC
datum = new TimestampDatum(DateTimeUtil.toJulianTimestamp(2001, 8, 31, 1, 0, 0, 0));
result = datum.plus(new IntervalDatum(1, 0));
- assertEquals(TajoDataTypes.Type.TIMESTAMP, result.type());
+ assertEquals(Type.Timestamp, result.type());
assertEquals(DatumFactory.parseTimestamp("2001-09-30 01:00:00", null), result);
}
}
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestTextDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestTextDatum.java
index 2624d330cb..d7e569bd6f 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestTextDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestTextDatum.java
@@ -18,7 +18,7 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
+import org.apache.tajo.type.Type;
import org.junit.Test;
import org.powermock.reflect.Whitebox;
@@ -28,12 +28,6 @@
public class TestTextDatum {
- @Test
- public final void testType() {
- Datum d = DatumFactory.createText("12345");
- assertEquals(d.type(), Type.TEXT);
- }
-
@Test
public final void testAsInt4() {
Datum d = DatumFactory.createText("12345");
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java
index 7058b525e4..ae5a9ac311 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java
@@ -18,8 +18,8 @@
package org.apache.tajo.datum;
+import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.common.TajoDataTypes.DataType;
-import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.json.CommonGsonHelper;
import org.junit.Test;
@@ -30,12 +30,6 @@
public class TestTimeDatum {
private static String TIME = "12:34:56";
- @Test
- public final void testType() {
- Datum d = DatumFactory.createTime(TIME);
- assertEquals(Type.TIME, d.type());
- }
-
@Test(expected = TajoRuntimeException.class)
public final void testAsInt4() {
Datum d = DatumFactory.createTime(TIME);
@@ -106,7 +100,7 @@ public final void testGetFields() {
@Test
public final void testTimeDatumFromCreateFromInt8() {
TimeDatum d = DatumFactory.createTime(TIME);
- DataType type = DataType.newBuilder().setType(Type.TIME).build();
+ DataType type = DataType.newBuilder().setType(TajoDataTypes.Type.TIME).build();
TimeDatum copy = (TimeDatum)DatumFactory.createFromInt8(type, d.asInt8());
assertEquals(d, copy);
diff --git a/tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java b/tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java
index 2bbb92d323..32d4784700 100644
--- a/tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java
+++ b/tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java
@@ -18,7 +18,6 @@
package org.apache.tajo.datum;
-import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.exception.InvalidOperationException;
import org.apache.tajo.exception.TajoRuntimeException;
import org.apache.tajo.json.CommonGsonHelper;
@@ -45,12 +44,6 @@ public static void setUp() {
unixtime = (int) (javatime / 1000);
}
- @Test
- public final void testType() {
- Datum d = DatumFactory.createTimestampDatumWithUnixTime(unixtime);
- assertEquals(Type.TIMESTAMP, d.type());
- }
-
@Test(expected = TajoRuntimeException.class)
public final void testAsInt4() {
Datum d = DatumFactory.createTimestampDatumWithUnixTime(unixtime);
diff --git a/tajo-common/src/test/java/org/apache/tajo/tuple/memory/TestMemoryRowBlock.java b/tajo-common/src/test/java/org/apache/tajo/tuple/memory/TestMemoryRowBlock.java
index 6a9be2e0b6..b93b9648fd 100644
--- a/tajo-common/src/test/java/org/apache/tajo/tuple/memory/TestMemoryRowBlock.java
+++ b/tajo-common/src/test/java/org/apache/tajo/tuple/memory/TestMemoryRowBlock.java
@@ -288,7 +288,7 @@ public void testVTuplePutAndGetBenchmark() {
int count = 0;
for (VTuple aRowBlock : rowBlock) {
for (int m = 0; m < schema.length; m++) {
- if (aRowBlock.contains(m) && aRowBlock.get(m).type() == Type.INT4) {
+ if (aRowBlock.contains(m) && aRowBlock.get(m).kind() == Type.INT4) {
count++;
}
}
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/function/json/JsonArrayContains.java b/tajo-core/src/main/java/org/apache/tajo/engine/function/json/JsonArrayContains.java
index c0287a9336..9f90e4cc3e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/function/json/JsonArrayContains.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/function/json/JsonArrayContains.java
@@ -66,13 +66,13 @@ public Datum eval(Tuple params) {
if (isFirst) {
isFirst = false;
- if (actualParam.type() == TajoDataTypes.Type.INT1 ||
- actualParam.type() == TajoDataTypes.Type.INT2 ||
- actualParam.type() == TajoDataTypes.Type.INT4 ||
- actualParam.type() == TajoDataTypes.Type.INT8) {
+ if (actualParam.kind() == TajoDataTypes.Type.INT1 ||
+ actualParam.kind() == TajoDataTypes.Type.INT2 ||
+ actualParam.kind() == TajoDataTypes.Type.INT4 ||
+ actualParam.kind() == TajoDataTypes.Type.INT8) {
isLong = true;
- } else if (actualParam.type() == TajoDataTypes.Type.FLOAT4 ||
- actualParam.type() == TajoDataTypes.Type.FLOAT8) {
+ } else if (actualParam.kind() == TajoDataTypes.Type.FLOAT4 ||
+ actualParam.kind() == TajoDataTypes.Type.FLOAT8) {
isDouble = true;
}
}
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
index aaf64cd4a7..b64665839c 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
@@ -2132,7 +2132,7 @@ public static Type convertDataType(DataTypeExpr dataType) {
} else if (dataType.hasLengthOrPrecision()) {
return Numeric(dataType.getLengthOrPrecision());
} else {
- return Numeric();
+ return Numeric;
}
} else {
return TypeFactory.create(type);
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BinaryEval.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BinaryEval.java
index b565b80189..a565d02c3b 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BinaryEval.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BinaryEval.java
@@ -21,7 +21,6 @@
import com.google.common.base.Objects;
import com.google.gson.annotations.Expose;
import org.apache.tajo.DataTypeUtil;
-import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.datum.Datum;
import org.apache.tajo.datum.DatumFactory;
import org.apache.tajo.datum.NullDatum;
@@ -154,7 +153,7 @@ public Datum eval(Tuple tuple) {
return lhs.modular(rhs);
case CONCATENATE:
- if (lhs.type() == TajoDataTypes.Type.NULL_TYPE || rhs.type() == TajoDataTypes.Type.NULL_TYPE) {
+ if (lhs.type().isNull() || rhs.type().isNull()) {
return NullDatum.get();
}
return DatumFactory.createText(lhs.asChars() + rhs.asChars());
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/ConstEval.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/ConstEval.java
index 4f1ece6791..b60f06a201 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/ConstEval.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/ConstEval.java
@@ -23,7 +23,6 @@
import org.apache.tajo.datum.Datum;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.type.Type;
-import org.apache.tajo.type.TypeFactory;
public class ConstEval extends EvalNode implements Comparable, Cloneable {
@Expose Datum datum = null;
@@ -51,7 +50,7 @@ public Datum eval(Tuple tuple) {
@Override
public Type getValueType() {
- return TypeFactory.create(datum.type());
+ return datum.type();
}
@Override
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/RowConstantEval.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/RowConstantEval.java
index 21d3517b9f..6e8689055f 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/RowConstantEval.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/RowConstantEval.java
@@ -23,7 +23,6 @@
import org.apache.tajo.datum.NullDatum;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.type.Type;
-import org.apache.tajo.type.TypeFactory;
import org.apache.tajo.util.StringUtils;
import org.apache.tajo.util.TUtil;
@@ -39,7 +38,7 @@ public RowConstantEval(Datum [] values) {
@Override
public Type getValueType() {
- return TypeFactory.create(values[0].type());
+ return values[0].type();
}
@Override
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java
index 9371b3632b..83ea416ce6 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java
@@ -20,7 +20,6 @@
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.TableMeta;
-import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.datum.AnyDatum;
import org.apache.tajo.datum.Datum;
import org.apache.tajo.exception.TajoRuntimeException;
@@ -59,7 +58,7 @@ public int serialize(OutputStream out, Tuple input, Schema schema) throws IOExce
for (int i = 0; i < input.size(); i++) {
Datum datum = input.asDatum(i);
String typeStr;
- if (datum.type() == TajoDataTypes.Type.ANY) {
+ if (datum.type().isAny()) {
typeStr = getTypeString(((AnyDatum)datum).getActual());
} else {
typeStr = getTypeString(datum);
@@ -78,19 +77,6 @@ public int serialize(OutputStream out, Tuple input, Schema schema) throws IOExce
return writtenBytes;
}
- private int serializeDatum(OutputStream out, Datum datum, TajoDataTypes.DataType dataType) throws IOException {
- String typeStr;
- if (datum.type() == TajoDataTypes.Type.ANY) {
- typeStr = getTypeString(((AnyDatum)datum).getActual());
- } else {
- typeStr = getTypeString(datum);
- }
- out.write(typeStr.getBytes());
- out.write(PARAM_DELIM.getBytes());
-
- return serde.serialize(out, datum, dataType, nullChars);
- }
-
@Override
public int serializeContext(OutputStream out, FunctionContext context) throws IOException {
int writtenBytes = 0;
@@ -114,7 +100,7 @@ public void release() {
}
public static String getTypeString(Datum val) {
- switch (val.type()) {
+ switch (val.kind()) {
case NULL_TYPE:
return "-";
case BOOLEAN:
@@ -141,7 +127,7 @@ public static String getTypeString(Datum val) {
case BLOB:
return "A";
default:
- throw new TajoRuntimeException(new UnsupportedException("data type '" + val.type().name() + "'"));
+ throw new TajoRuntimeException(new UnsupportedException("data type '" + val.type() + "'"));
}
}
}
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java
index 7bcb694fd9..84b1dbea74 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java
@@ -137,7 +137,7 @@ public int serialize(OutputStream out, Datum datum, TajoDataTypes.DataType dataT
break;
case ANY:
AnyDatum anyDatum = (AnyDatum) datum;
- length = serialize(out, anyDatum.getActual(), CatalogUtil.newSimpleDataType(anyDatum.getActual().type()),
+ length = serialize(out, anyDatum.getActual(), CatalogUtil.newSimpleDataType(anyDatum.getActual().kind()),
nullChars);
break;
default:
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/EvalNodeSerializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/EvalNodeSerializer.java
index ecaa882214..f7911983f2 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/EvalNodeSerializer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/EvalNodeSerializer.java
@@ -364,9 +364,9 @@ private WinFunctionEvalSpec.WindowFrameEndBoundType convertEndBoundType(WindowFr
public static PlanProto.Datum serialize(Datum datum) {
PlanProto.Datum.Builder builder = PlanProto.Datum.newBuilder();
- builder.setType(datum.type());
+ builder.setType(datum.kind());
- switch (datum.type()) {
+ switch (datum.kind()) {
case NULL_TYPE:
break;
case BOOLEAN:
@@ -409,7 +409,7 @@ public static PlanProto.Datum serialize(Datum datum) {
builder.setActual(serialize(((AnyDatum)datum).getActual()));
break;
default:
- throw new RuntimeException("Unknown data type: " + datum.type().name());
+ throw new RuntimeException("Unknown data type: " + datum.type());
}
return builder.build();
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/util/EvalNodeToExprConverter.java b/tajo-plan/src/main/java/org/apache/tajo/plan/util/EvalNodeToExprConverter.java
index 2ad6b6f103..d3a51c15e0 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/util/EvalNodeToExprConverter.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/util/EvalNodeToExprConverter.java
@@ -154,7 +154,7 @@ protected EvalNode visitRowConstant(Object o, RowConstantEval evalNode, Stack writa
}
public static Writable convertDatum2Writable(Datum value) {
- switch(value.type()) {
+ switch(value.kind()) {
case INT1: return new ByteWritable(value.asByte());
case INT2: return new ShortWritable(value.asInt2());
case INT4: return new IntWritable(value.asInt4());
@@ -111,7 +112,7 @@ public static Writable convertDatum2Writable(Datum value) {
case NULL_TYPE: return null;
}
- throw new TajoRuntimeException(new NotImplementedException(value.type().name()));
+ throw new TajoRuntimeException(new NotImplementedException(TypeStringEncoder.encode(value.type())));
}
public static Datum convertWritable2Datum(Writable value) throws UnsupportedDataTypeException {
diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
index 72ffde7296..903ca39d82 100644
--- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
+++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java
@@ -116,7 +116,7 @@ public Datum asDatum(int fieldId) {
@Override
public TajoDataTypes.Type type(int fieldId) {
- return get(fieldId).type();
+ return get(fieldId).kind();
}
@Override
diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MemoryUtil.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MemoryUtil.java
deleted file mode 100644
index 16477cd8ef..0000000000
--- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MemoryUtil.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tajo.storage;
-
-import org.apache.tajo.datum.*;
-import org.apache.tajo.util.ClassSize;
-
-public class MemoryUtil {
-
- /** Overhead for an NullDatum */
- public static final long NULL_DATUM;
-
- /** Overhead for an BoolDatum */
- public static final long BOOL_DATUM;
-
- /** Overhead for an CharDatum */
- public static final long CHAR_DATUM;
-
- /** Overhead for an BitDatum */
- public static final long BIT_DATUM;
-
- /** Overhead for an Int2Datum */
- public static final long INT2_DATUM;
-
- /** Overhead for an Int4Datum */
- public static final long INT4_DATUM;
-
- /** Overhead for an Int8Datum */
- public static final long INT8_DATUM;
-
- /** Overhead for an Float4Datum */
- public static final long FLOAT4_DATUM;
-
- /** Overhead for an Float8Datum */
- public static final long FLOAT8_DATUM;
-
- /** Overhead for an TextDatum */
- public static final long TEXT_DATUM;
-
- /** Overhead for an BlobDatum */
- public static final long BLOB_DATUM;
-
- /** Overhead for an DateDatum */
- public static final long DATE_DATUM;
-
- /** Overhead for an TimeDatum */
- public static final long TIME_DATUM;
-
- /** Overhead for an TimestampDatum */
- public static final long TIMESTAMP_DATUM;
-
- static {
- NULL_DATUM = ClassSize.estimateBase(NullDatum.class, false);
-
- CHAR_DATUM = ClassSize.estimateBase(CharDatum.class, false);
-
- BOOL_DATUM = ClassSize.estimateBase(BooleanDatum.class, false);
-
- BIT_DATUM = ClassSize.estimateBase(BitDatum.class, false);
-
- INT2_DATUM = ClassSize.estimateBase(Int2Datum.class, false);
-
- INT4_DATUM = ClassSize.estimateBase(Int4Datum.class, false);
-
- INT8_DATUM = ClassSize.estimateBase(Int8Datum.class, false);
-
- FLOAT4_DATUM = ClassSize.estimateBase(Float4Datum.class, false);
-
- FLOAT8_DATUM = ClassSize.estimateBase(Float8Datum.class, false);
-
- TEXT_DATUM = ClassSize.estimateBase(TextDatum.class, false);
-
- BLOB_DATUM = ClassSize.estimateBase(BlobDatum.class, false);
-
- DATE_DATUM = ClassSize.estimateBase(DateDatum.class, false);
-
- TIME_DATUM = ClassSize.estimateBase(TimeDatum.class, false);
-
- TIMESTAMP_DATUM = ClassSize.estimateBase(TimestampDatum.class, false);
- }
-
- public static long calculateMemorySize(Tuple tuple) {
- long total = ClassSize.OBJECT;
- for (Datum datum : tuple.getValues()) {
- switch (datum.type()) {
-
- case NULL_TYPE:
- total += NULL_DATUM;
- break;
-
- case BOOLEAN:
- total += BOOL_DATUM;
- break;
-
- case BIT:
- total += BIT_DATUM;
- break;
-
- case CHAR:
- total += CHAR_DATUM + datum.size();
- break;
-
- case INT1:
- case INT2:
- total += INT2_DATUM;
- break;
-
- case INT4:
- total += INT4_DATUM;
- break;
-
- case INT8:
- total += INT8_DATUM;
- break;
-
- case FLOAT4:
- total += FLOAT4_DATUM;
- break;
-
- case FLOAT8:
- total += FLOAT4_DATUM;
- break;
-
- case TEXT:
- total += TEXT_DATUM + datum.size();
- break;
-
- case BLOB:
- total += BLOB_DATUM + datum.size();
- break;
-
- case DATE:
- total += DATE_DATUM;
- break;
-
- case TIME:
- total += TIME_DATUM;
- break;
-
- case TIMESTAMP:
- total += TIMESTAMP_DATUM;
- break;
-
- default:
- break;
- }
- }
-
- return total;
- }
-}
diff --git a/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/SQLExpressionGenerator.java b/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/SQLExpressionGenerator.java
index da97e32e92..064d6cb61a 100644
--- a/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/SQLExpressionGenerator.java
+++ b/tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/SQLExpressionGenerator.java
@@ -229,7 +229,7 @@ protected EvalNode visitSubquery(Context context, SubqueryEval evalNode, Stack