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) {