You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2013/12/30 18:02:32 UTC
git commit: TAJO-466: Supporting TIME types in
DatumFactory.createFromInt8. (DaeMyung Kang via jihoon)
Updated Branches:
refs/heads/master 33606c802 -> a8646fbf5
TAJO-466: Supporting TIME types in DatumFactory.createFromInt8. (DaeMyung Kang via jihoon)
Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/a8646fbf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/a8646fbf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/a8646fbf
Branch: refs/heads/master
Commit: a8646fbf58f99f149b68089a439de850299d26fd
Parents: 33606c8
Author: Jihoon Son <ji...@apache.org>
Authored: Tue Dec 31 02:02:26 2013 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Tue Dec 31 02:02:26 2013 +0900
----------------------------------------------------------------------
CHANGES.txt | 2 +
.../org/apache/tajo/datum/DatumFactory.java | 2 +
.../org/apache/tajo/datum/TestTimeDatum.java | 47 +++++++++++++-------
.../org/apache/tajo/storage/RowStoreUtil.java | 1 +
4 files changed, 35 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/a8646fbf/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0b1765f..9dbc7de 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -110,6 +110,8 @@ Release 0.8.0 - unreleased
IMPROVEMENTS
+ TAJO-466: Supporting TIME types in DatumFactory.createFromInt8. (DaeMyung Kang via jihoon)
+
TAJO-458: Visit methods of LogicalPlanVisitor should take a query block
as parameter. (hyunsik)
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/a8646fbf/tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
----------------------------------------------------------------------
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 de645c1..7520423 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
@@ -167,6 +167,8 @@ public class DatumFactory {
return new Int8Datum(val);
case TIMESTAMP:
return createTimeStampFromMillis(val);
+ case TIME:
+ return createTime(val);
default:
throw new UnsupportedOperationException("Cannot create " + type.getType().name() + " datum from INT8");
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/a8646fbf/tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java
----------------------------------------------------------------------
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 19bab9b..d2b138e 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
@@ -19,6 +19,7 @@
package org.apache.tajo.datum;
import org.apache.tajo.common.TajoDataTypes.Type;
+import org.apache.tajo.common.TajoDataTypes.DataType;
import org.apache.tajo.datum.exception.InvalidCastException;
import org.apache.tajo.json.CommonGsonHelper;
import org.junit.Test;
@@ -29,44 +30,44 @@ import static org.junit.Assert.assertEquals;
public class TestTimeDatum {
private static String TIME = "12:34:56";
- @Test
- public final void testType() {
- Datum d = DatumFactory.createTime(TIME);
+ @Test
+ public final void testType() {
+ Datum d = DatumFactory.createTime(TIME);
assertEquals(Type.TIME, d.type());
- }
+ }
@Test(expected = InvalidCastException.class)
- public final void testAsInt4() {
+ public final void testAsInt4() {
Datum d = DatumFactory.createTime(TIME);
Datum copy = DatumFactory.createTime(d.asInt4());
assertEquals(d, copy);
- }
+ }
- @Test
- public final void testAsInt8() {
+ @Test
+ public final void testAsInt8() {
Datum d = DatumFactory.createTime(TIME);
Datum copy = DatumFactory.createTime(d.asInt8());
assertEquals(d, copy);
- }
+ }
@Test(expected = InvalidCastException.class)
- public final void testAsFloat4() {
+ public final void testAsFloat4() {
Datum d = DatumFactory.createTime(TIME);
d.asFloat4();
- }
+ }
@Test(expected = InvalidCastException.class)
- public final void testAsFloat8() {
+ public final void testAsFloat8() {
Datum d = DatumFactory.createTime(TIME);
d.asFloat8();
- }
+ }
- @Test
- public final void testAsText() {
+ @Test
+ public final void testAsText() {
Datum d = DatumFactory.createTime(TIME);
Datum copy = DatumFactory.createTime(d.asChars());
assertEquals(d, copy);
- }
+ }
@Test
public final void testAsByteArray() {
@@ -75,7 +76,7 @@ public class TestTimeDatum {
assertEquals(d.asInt8(), copy.asInt8());
}
- @Test
+ @Test
public final void testSize() {
Datum d = DatumFactory.createTime(TIME);
assertEquals(TimeDatum.SIZE, d.asByteArray().length);
@@ -108,4 +109,16 @@ public class TestTimeDatum {
assertEquals(34, d.getMinuteOfHour());
assertEquals(56, d.getSecondOfMinute());
}
+
+ @Test
+ public final void testTimeDatumFromCreateFromInt8() {
+ TimeDatum d = DatumFactory.createTime(TIME);
+ DataType type = DataType.newBuilder().setType(Type.TIME).build();
+ TimeDatum copy = (TimeDatum)DatumFactory.createFromInt8(type, d.asInt8());
+
+ assertEquals(d, copy);
+ assertEquals(12, copy.getHourOfDay());
+ assertEquals(34, copy.getMinuteOfHour());
+ assertEquals(56, copy.getSecondOfMinute());
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/a8646fbf/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java b/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
index e5b9a8f..9f32028 100644
--- a/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
+++ b/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
@@ -97,6 +97,7 @@ public class RowStoreUtil {
break;
case INT8:
+ case TIME:
case TIMESTAMP:
long l = bb.getLong();
if ( l < Long.MIN_VALUE + 1) {