Repository: incubator-quickstep
Updated Branches:
  refs/heads/date-representation 2f5b6ddfd -> 92555fc43


Some additional changes for the size change.


Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/92555fc4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/92555fc4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/92555fc4

Branch: refs/heads/date-representation
Commit: 92555fc4311d8efdee4b66faeb4fb0cd48938595
Parents: 2f5b6dd
Author: Hakan Memisoglu <hakanmemiso...@gmail.com>
Authored: Tue Sep 6 09:02:40 2016 -0500
Committer: Hakan Memisoglu <hakanmemiso...@gmail.com>
Committed: Tue Sep 6 09:02:40 2016 -0500

----------------------------------------------------------------------
 types/DatetimeLit.hpp  | 6 ++++++
 types/TypedValue.cpp   | 9 ++-------
 types/TypedValue.hpp   | 4 +++-
 types/TypedValue.proto | 8 +-------
 4 files changed, 12 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/92555fc4/types/DatetimeLit.hpp
----------------------------------------------------------------------
diff --git a/types/DatetimeLit.hpp b/types/DatetimeLit.hpp
index 7ce7177..c99dae4 100644
--- a/types/DatetimeLit.hpp
+++ b/types/DatetimeLit.hpp
@@ -73,6 +73,12 @@ struct DateLit {
     return date;
   }
 
+  static DateLit Create(const std::uint32_t serialized) {
+    DateLit date;
+    date.year_month_day = serialized;
+    return date;
+  }
+
   inline bool operator< (const DateLit& rhs) const {
     return year_month_day < rhs.year_month_day;
   }

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/92555fc4/types/TypedValue.cpp
----------------------------------------------------------------------
diff --git a/types/TypedValue.cpp b/types/TypedValue.cpp
index d7b4956..ada69c6 100644
--- a/types/TypedValue.cpp
+++ b/types/TypedValue.cpp
@@ -110,10 +110,7 @@ serialization::TypedValue TypedValue::getProto() const {
     case kDate:
       proto.set_type_id(serialization::Type::DATE);
       if (!isNull()) {
-        serialization::TypedValue::DateLit *literal_date_proto = 
proto.mutable_date_value();
-        literal_date_proto->set_year(value_union_.date_value.yearField());
-        literal_date_proto->set_month(value_union_.date_value.monthField());
-        literal_date_proto->set_day(value_union_.date_value.dayField());
+        proto.set_date_value(getLiteral<DateLit>().year_month_day);
       }
       break;
     case kDatetime:
@@ -185,9 +182,7 @@ TypedValue TypedValue::ReconstructFromProto(const 
serialization::TypedValue &pro
           TypedValue(kDouble);
     case serialization::Type::DATE:
       if (proto.has_date_value()) {
-        return TypedValue(DateLit::Create(proto.date_value().year(),
-                                          proto.date_value().month(),
-                                          proto.date_value().day()));
+        return TypedValue(DateLit::Create(proto.date_value()));
       } else {
         return TypedValue(kDate);
       }

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/92555fc4/types/TypedValue.hpp
----------------------------------------------------------------------
diff --git a/types/TypedValue.hpp b/types/TypedValue.hpp
index d75720a..dae8bd8 100644
--- a/types/TypedValue.hpp
+++ b/types/TypedValue.hpp
@@ -393,10 +393,10 @@ class TypedValue {
     switch (getTypeID()) {
       case kInt:
       case kFloat:
+      case kDate:
         return sizeof(int);
       case kLong:
       case kDouble:
-      case kDate:
       case kDatetime:
       case kDatetimeInterval:
       case kYearMonthInterval:
@@ -552,6 +552,8 @@ class TypedValue {
           // 4 bytes byte-for-byte copy.
           *static_cast<int*>(destination) = value_union_.int_value;
           break;
+        case kDate:
+          *static_cast<DateLit*>(destination) = value_union_.date_value;
         default:
           // 8 bytes byte-for-byte copy.
           *static_cast<ValueUnion*>(destination) = value_union_;

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/92555fc4/types/TypedValue.proto
----------------------------------------------------------------------
diff --git a/types/TypedValue.proto b/types/TypedValue.proto
index 7f3ab7a..0164688 100644
--- a/types/TypedValue.proto
+++ b/types/TypedValue.proto
@@ -34,11 +34,5 @@ message TypedValue {
   optional int64 datetime_interval_value = 8;
   optional int64 year_month_interval_value = 9;
 
-  message DateLit {
-    required int32 year = 1;
-    required uint32 month = 2;
-    required uint32 day = 3;
-  }
-
-  optional DateLit date_value = 10;
+  optional uint32 date_value = 10;
 }

Reply via email to