You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by hyoungjun kim <ba...@gmail.com> on 2014/05/14 12:42:41 UTC
Review Request 21432: TAJO-825: Datetime type refactoring.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/
-----------------------------------------------------------
Review request for Tajo.
Bugs: TAJO-825
https://issues.apache.org/jira/browse/TAJO-825
Repository: tajo
Description
-------
Currently Tajo uses Joda time library for Datetime related features.
I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
{code}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1582);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.DAY_OF_MONTH, 14);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
Chronology julianChrono = JulianChronology.getInstance();
DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
System.out.println("Java Calendar :" + df.format(cal.getTime()));
System.out.println("ISO Calendar : " + defaultCalDate);
System.out.println("Julian Calendar: " + julianCalDate);
System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
{code}
{noformat}
Java Calendar :1582-10-24 16:49:35
ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
ISO Calendar's dayOfWeek: 4
Julian Calendar's dayOfWeek: 7
ISO Calendar's getYearOfCentury: 15
Julian Calendar's getYearOfCentury: 16
{noformat}
Diffs
-----
tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java dfbe600
tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
Diff: https://reviews.apache.org/r/21432/diff/
Testing
-------
mvn clean install; and tested on local cluster
Thanks,
hyoungjun kim
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by hyoungjun kim <ba...@gmail.com>.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java, line 83
> > <https://reviews.apache.org/r/21432/diff/1/?file=581370#file581370line83>
> >
> > TajoConf will be created for every call of getCurrentTimeZone(). How about change to receive TajoConf as a function argument?
getCurrentTimeZone() is static method and CURRENT_TIMEZONE static field. TajoConf will be created at first time in the case of CURRENT_TIMEZONE is null.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java, line 83
> > <https://reviews.apache.org/r/21432/diff/1/?file=581370#file581370line83>
> >
> > TajoConf will be created for every call of getCurrentTimeZone(). How about change to receive TajoConf as a function parameter?
getCurrentTimeZone() is static method and CURRENT_TIMEZONE static field. TajoConf will be created at first time in the case of CURRENT_TIMEZONE is null.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java, line 44
> > <https://reviews.apache.org/r/21432/diff/1/?file=581371#file581371line44>
> >
> > The TimeMeta instance is create very frequently. How about to keep an instance of TimeMeta in DateDatum?
I also regarded about that. But the TimeMeta has many fields and needed more memory in the case HashAggregation or memory-based sort operation. You know Tajo's GC status not good in this operation.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java, line 291
> > <https://reviews.apache.org/r/21432/diff/1/?file=581371#file581371line291>
> >
> > This is a Java 1.7 syntax, and can incur a compilation error for 1.6 compiler.
I will fix.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java, line 270
> > <https://reviews.apache.org/r/21432/diff/1/?file=581372#file581372line270>
> >
> > TimeMeta seems to be useless.
I will fix.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java, line 207
> > <https://reviews.apache.org/r/21432/diff/1/?file=581374#file581374line207>
> >
> > Float8 may be casted to Int8 instead of int4.
Sorry, I don't know what you mean.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java, line 232
> > <https://reviews.apache.org/r/21432/diff/1/?file=581374#file581374line232>
> >
> > Float8 may be casted to Int8 instead of int4.
Sorry, I don't know what you mean.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java, line 221
> > <https://reviews.apache.org/r/21432/diff/1/?file=581377#file581377line221>
> >
> > Do you have any reasons of using int4 instead of int8?
There is no particular reason. Int4 is enough for day.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java, line 246
> > <https://reviews.apache.org/r/21432/diff/1/?file=581377#file581377line246>
> >
> > Do you have any reasons of using int4 instead of int8?
There is no particular reason. Int4 is enough for day.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java, line 64
> > <https://reviews.apache.org/r/21432/diff/1/?file=581379#file581379line64>
> >
> > TimeMeta is used very frequently. How about keep its instance in TimeDatum?
I also regarded about that. But the TimeMeta has many fields and needed more memory in the case HashAggregation or memory-based sort operation. You know Tajo's GC status not good in this operation.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java, line 91
> > <https://reviews.apache.org/r/21432/diff/1/?file=581380#file581380line91>
> >
> > TimeMeta is used very frequently. How about keep its instance in TimeDatum?
I also regarded about that. But the TimeMeta has many fields and needed more memory in the case HashAggregation or memory-based sort operation. You know Tajo's GC status not good in this operation.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java, line 42
> > <https://reviews.apache.org/r/21432/diff/1/?file=581382#file581382line42>
> >
> > Please remove the commented out line.
I'll remove.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java, line 24
> > <https://reviews.apache.org/r/21432/diff/1/?file=581387#file581387line24>
> >
> > Would you add a description of fsecs?
Yes, I'll.
- hyoungjun
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/#review43196
-----------------------------------------------------------
On May 14, 2014, 10:42 a.m., hyoungjun kim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21432/
> -----------------------------------------------------------
>
> (Updated May 14, 2014, 10:42 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-825
> https://issues.apache.org/jira/browse/TAJO-825
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently Tajo uses Joda time library for Datetime related features.
> I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
> So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
> {code}
> Calendar cal = Calendar.getInstance();
> cal.set(Calendar.YEAR, 1582);
> cal.set(Calendar.MONTH, 9);
> cal.set(Calendar.DAY_OF_MONTH, 14);
>
> SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
> Chronology julianChrono = JulianChronology.getInstance();
> DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
>
> System.out.println("Java Calendar :" + df.format(cal.getTime()));
> System.out.println("ISO Calendar : " + defaultCalDate);
> System.out.println("Julian Calendar: " + julianCalDate);
>
> System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
> System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
>
> System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
> System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
> {code}
>
> {noformat}
> Java Calendar :1582-10-24 16:49:35
> ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
> Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
> ISO Calendar's dayOfWeek: 4
> Julian Calendar's dayOfWeek: 7
> ISO Calendar's getYearOfCentury: 15
> Julian Calendar's getYearOfCentury: 16
> {noformat}
>
>
> Diffs
> -----
>
> tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
> tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
> tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
> tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
> tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
> tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
> tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
> tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
> tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
> tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
> tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
> tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
> tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
> tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
> tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
> tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java dfbe600
> tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
> tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
> tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
> tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
> tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
> tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
>
> Diff: https://reviews.apache.org/r/21432/diff/
>
>
> Testing
> -------
>
> mvn clean install; and tested on local cluster
>
>
> Thanks,
>
> hyoungjun kim
>
>
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by hyoungjun kim <ba...@gmail.com>.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java, line 207
> > <https://reviews.apache.org/r/21432/diff/1/?file=581374#file581374line207>
> >
> > Float8 may be casted to Int8 instead of int4.
>
> hyoungjun kim wrote:
> Sorry, I don't know what you mean.
TimeMeta's plusDays() method requires int type for day.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java, line 232
> > <https://reviews.apache.org/r/21432/diff/1/?file=581374#file581374line232>
> >
> > Float8 may be casted to Int8 instead of int4.
>
> hyoungjun kim wrote:
> Sorry, I don't know what you mean.
TimeMeta's plusDays() method requires int type for day.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java, line 221
> > <https://reviews.apache.org/r/21432/diff/1/?file=581377#file581377line221>
> >
> > Do you have any reasons of using int4 instead of int8?
>
> hyoungjun kim wrote:
> There is no particular reason. Int4 is enough for day.
TimeMeta's plusDays() method requires int type for day.
> On May 16, 2014, 6:15 a.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java, line 246
> > <https://reviews.apache.org/r/21432/diff/1/?file=581377#file581377line246>
> >
> > Do you have any reasons of using int4 instead of int8?
>
> hyoungjun kim wrote:
> There is no particular reason. Int4 is enough for day.
TimeMeta's plusDays() method requires int type for day.
- hyoungjun
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/#review43196
-----------------------------------------------------------
On May 14, 2014, 10:42 a.m., hyoungjun kim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21432/
> -----------------------------------------------------------
>
> (Updated May 14, 2014, 10:42 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-825
> https://issues.apache.org/jira/browse/TAJO-825
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently Tajo uses Joda time library for Datetime related features.
> I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
> So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
> {code}
> Calendar cal = Calendar.getInstance();
> cal.set(Calendar.YEAR, 1582);
> cal.set(Calendar.MONTH, 9);
> cal.set(Calendar.DAY_OF_MONTH, 14);
>
> SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
> Chronology julianChrono = JulianChronology.getInstance();
> DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
>
> System.out.println("Java Calendar :" + df.format(cal.getTime()));
> System.out.println("ISO Calendar : " + defaultCalDate);
> System.out.println("Julian Calendar: " + julianCalDate);
>
> System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
> System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
>
> System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
> System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
> {code}
>
> {noformat}
> Java Calendar :1582-10-24 16:49:35
> ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
> Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
> ISO Calendar's dayOfWeek: 4
> Julian Calendar's dayOfWeek: 7
> ISO Calendar's getYearOfCentury: 15
> Julian Calendar's getYearOfCentury: 16
> {noformat}
>
>
> Diffs
> -----
>
> tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
> tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
> tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
> tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
> tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
> tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
> tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
> tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
> tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
> tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
> tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
> tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
> tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
> tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
> tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
> tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java dfbe600
> tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
> tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
> tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
> tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
> tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
> tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
>
> Diff: https://reviews.apache.org/r/21432/diff/
>
>
> Testing
> -------
>
> mvn clean install; and tested on local cluster
>
>
> Thanks,
>
> hyoungjun kim
>
>
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/#review43196
-----------------------------------------------------------
Hyoungjun, thanks for your great contribution!
The proposed refactoring is very interesting and looks awesome!!
I left some comments.
Thanks!
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
<https://reviews.apache.org/r/21432/#comment77269>
TajoConf will be created for every call of getCurrentTimeZone(). How about change to receive TajoConf as a function argument?
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
<https://reviews.apache.org/r/21432/#comment77270>
TajoConf will be created for every call of getCurrentTimeZone(). How about change to receive TajoConf as a function parameter?
tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
<https://reviews.apache.org/r/21432/#comment77271>
The TimeMeta instance is create very frequently. How about to keep an instance of TimeMeta in DateDatum?
tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java
<https://reviews.apache.org/r/21432/#comment77272>
This is a Java 1.7 syntax, and can incur a compilation error for 1.6 compiler.
tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
<https://reviews.apache.org/r/21432/#comment77275>
TimeMeta seems to be useless.
tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java
<https://reviews.apache.org/r/21432/#comment77277>
Float8 may be casted to Int8 instead of int4.
tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java
<https://reviews.apache.org/r/21432/#comment77278>
Float8 may be casted to Int8 instead of int4.
tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java
<https://reviews.apache.org/r/21432/#comment77279>
Do you have any reasons of using int4 instead of int8?
tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java
<https://reviews.apache.org/r/21432/#comment77280>
Do you have any reasons of using int4 instead of int8?
tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java
<https://reviews.apache.org/r/21432/#comment77281>
TimeMeta is used very frequently. How about keep its instance in TimeDatum?
tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java
<https://reviews.apache.org/r/21432/#comment77282>
TimeMeta is used very frequently. How about keep its instance in TimeDatum?
tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java
<https://reviews.apache.org/r/21432/#comment77283>
Please remove the commented out line.
tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java
<https://reviews.apache.org/r/21432/#comment77284>
Would you add a description of fsecs?
- Jihoon Son
On May 14, 2014, 7:42 p.m., hyoungjun kim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21432/
> -----------------------------------------------------------
>
> (Updated May 14, 2014, 7:42 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-825
> https://issues.apache.org/jira/browse/TAJO-825
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently Tajo uses Joda time library for Datetime related features.
> I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
> So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
> {code}
> Calendar cal = Calendar.getInstance();
> cal.set(Calendar.YEAR, 1582);
> cal.set(Calendar.MONTH, 9);
> cal.set(Calendar.DAY_OF_MONTH, 14);
>
> SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
> Chronology julianChrono = JulianChronology.getInstance();
> DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
>
> System.out.println("Java Calendar :" + df.format(cal.getTime()));
> System.out.println("ISO Calendar : " + defaultCalDate);
> System.out.println("Julian Calendar: " + julianCalDate);
>
> System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
> System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
>
> System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
> System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
> {code}
>
> {noformat}
> Java Calendar :1582-10-24 16:49:35
> ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
> Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
> ISO Calendar's dayOfWeek: 4
> Julian Calendar's dayOfWeek: 7
> ISO Calendar's getYearOfCentury: 15
> Julian Calendar's getYearOfCentury: 16
> {noformat}
>
>
> Diffs
> -----
>
> tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
> tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
> tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
> tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
> tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
> tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
> tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
> tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
> tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
> tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
> tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
> tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
> tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
> tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
> tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
> tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java dfbe600
> tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
> tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
> tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
> tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
> tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
> tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
>
> Diff: https://reviews.apache.org/r/21432/diff/
>
>
> Testing
> -------
>
> mvn clean install; and tested on local cluster
>
>
> Thanks,
>
> hyoungjun kim
>
>
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by hyoungjun kim <ba...@gmail.com>.
> On May 21, 2014, 12:22 p.m., Jihoon Son wrote:
> > tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java, line 329
> > <https://reviews.apache.org/r/21432/diff/2/?file=586482#file586482line329>
> >
> > The default value of timezone doesn't seem to be proper.
Sorry I missed that. I'll revert.
- hyoungjun
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/#review43612
-----------------------------------------------------------
On May 21, 2014, 11:24 a.m., hyoungjun kim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21432/
> -----------------------------------------------------------
>
> (Updated May 21, 2014, 11:24 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-825
> https://issues.apache.org/jira/browse/TAJO-825
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently Tajo uses Joda time library for Datetime related features.
> I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
> So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
> {code}
> Calendar cal = Calendar.getInstance();
> cal.set(Calendar.YEAR, 1582);
> cal.set(Calendar.MONTH, 9);
> cal.set(Calendar.DAY_OF_MONTH, 14);
>
> SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
> Chronology julianChrono = JulianChronology.getInstance();
> DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
>
> System.out.println("Java Calendar :" + df.format(cal.getTime()));
> System.out.println("ISO Calendar : " + defaultCalDate);
> System.out.println("Julian Calendar: " + julianCalDate);
>
> System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
> System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
>
> System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
> System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
> {code}
>
> {noformat}
> Java Calendar :1582-10-24 16:49:35
> ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
> Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
> ISO Calendar's dayOfWeek: 4
> Julian Calendar's dayOfWeek: 7
> ISO Calendar's getYearOfCentury: 15
> Julian Calendar's getYearOfCentury: 16
> {noformat}
>
>
> Diffs
> -----
>
> tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
> tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
> tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
> tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
> tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
> tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
> tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
> tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
> tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
> tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
> tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
> tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
> tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
> tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
> tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
> tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java e74fd70
> tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
> tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
> tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
> tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
> tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
> tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
>
> Diff: https://reviews.apache.org/r/21432/diff/
>
>
> Testing
> -------
>
> mvn clean install; and tested on local cluster
>
>
> Thanks,
>
> hyoungjun kim
>
>
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/#review43612
-----------------------------------------------------------
Ship it!
+1
Thanks for your great work!
I left a trivial comment.
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
<https://reviews.apache.org/r/21432/#comment77892>
The default value of timezone doesn't seem to be proper.
- Jihoon Son
On May 21, 2014, 8:24 p.m., hyoungjun kim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21432/
> -----------------------------------------------------------
>
> (Updated May 21, 2014, 8:24 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-825
> https://issues.apache.org/jira/browse/TAJO-825
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently Tajo uses Joda time library for Datetime related features.
> I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
> So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
> {code}
> Calendar cal = Calendar.getInstance();
> cal.set(Calendar.YEAR, 1582);
> cal.set(Calendar.MONTH, 9);
> cal.set(Calendar.DAY_OF_MONTH, 14);
>
> SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
> Chronology julianChrono = JulianChronology.getInstance();
> DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
>
> System.out.println("Java Calendar :" + df.format(cal.getTime()));
> System.out.println("ISO Calendar : " + defaultCalDate);
> System.out.println("Julian Calendar: " + julianCalDate);
>
> System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
> System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
>
> System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
> System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
> {code}
>
> {noformat}
> Java Calendar :1582-10-24 16:49:35
> ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
> Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
> ISO Calendar's dayOfWeek: 4
> Julian Calendar's dayOfWeek: 7
> ISO Calendar's getYearOfCentury: 15
> Julian Calendar's getYearOfCentury: 16
> {noformat}
>
>
> Diffs
> -----
>
> tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
> tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
> tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
> tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
> tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
> tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
> tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
> tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
> tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
> tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
> tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
> tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
> tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
> tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
> tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
> tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java e74fd70
> tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
> tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
> tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
> tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
> tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
> tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
>
> Diff: https://reviews.apache.org/r/21432/diff/
>
>
> Testing
> -------
>
> mvn clean install; and tested on local cluster
>
>
> Thanks,
>
> hyoungjun kim
>
>
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/#review43691
-----------------------------------------------------------
Ship it!
Thanks!
I'll commit the latest patch!
- Jihoon Son
On May 21, 2014, 9:47 p.m., hyoungjun kim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/21432/
> -----------------------------------------------------------
>
> (Updated May 21, 2014, 9:47 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-825
> https://issues.apache.org/jira/browse/TAJO-825
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently Tajo uses Joda time library for Datetime related features.
> I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
> So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
> {code}
> Calendar cal = Calendar.getInstance();
> cal.set(Calendar.YEAR, 1582);
> cal.set(Calendar.MONTH, 9);
> cal.set(Calendar.DAY_OF_MONTH, 14);
>
> SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>
> DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
> Chronology julianChrono = JulianChronology.getInstance();
> DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
>
> System.out.println("Java Calendar :" + df.format(cal.getTime()));
> System.out.println("ISO Calendar : " + defaultCalDate);
> System.out.println("Julian Calendar: " + julianCalDate);
>
> System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
> System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
>
> System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
> System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
> {code}
>
> {noformat}
> Java Calendar :1582-10-24 16:49:35
> ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
> Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
> ISO Calendar's dayOfWeek: 4
> Julian Calendar's dayOfWeek: 7
> ISO Calendar's getYearOfCentury: 15
> Julian Calendar's getYearOfCentury: 16
> {noformat}
>
>
> Diffs
> -----
>
> tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
> tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
> tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
> tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
> tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
> tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
> tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
> tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
> tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
> tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
> tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
> tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
> tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
> tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
> tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
> tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
> tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
> tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
> tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
> tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java e74fd70
> tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
> tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
> tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
> tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
> tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
> tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
> tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
>
> Diff: https://reviews.apache.org/r/21432/diff/
>
>
> Testing
> -------
>
> mvn clean install; and tested on local cluster
>
>
> Thanks,
>
> hyoungjun kim
>
>
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by hyoungjun kim <ba...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/
-----------------------------------------------------------
(Updated May 21, 2014, 12:47 p.m.)
Review request for Tajo.
Changes
-------
Default timezone is resovled
Bugs: TAJO-825
https://issues.apache.org/jira/browse/TAJO-825
Repository: tajo
Description
-------
Currently Tajo uses Joda time library for Datetime related features.
I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
{code}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1582);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.DAY_OF_MONTH, 14);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
Chronology julianChrono = JulianChronology.getInstance();
DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
System.out.println("Java Calendar :" + df.format(cal.getTime()));
System.out.println("ISO Calendar : " + defaultCalDate);
System.out.println("Julian Calendar: " + julianCalDate);
System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
{code}
{noformat}
Java Calendar :1582-10-24 16:49:35
ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
ISO Calendar's dayOfWeek: 4
Julian Calendar's dayOfWeek: 7
ISO Calendar's getYearOfCentury: 15
Julian Calendar's getYearOfCentury: 16
{noformat}
Diffs (updated)
-----
tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java e74fd70
tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
Diff: https://reviews.apache.org/r/21432/diff/
Testing
-------
mvn clean install; and tested on local cluster
Thanks,
hyoungjun kim
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by hyoungjun kim <ba...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/
-----------------------------------------------------------
(Updated May 21, 2014, 11:24 a.m.)
Review request for Tajo.
Changes
-------
I resolved all comments and upload new patch. Please review. Thanks
Bugs: TAJO-825
https://issues.apache.org/jira/browse/TAJO-825
Repository: tajo
Description
-------
Currently Tajo uses Joda time library for Datetime related features.
I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
{code}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1582);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.DAY_OF_MONTH, 14);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
Chronology julianChrono = JulianChronology.getInstance();
DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
System.out.println("Java Calendar :" + df.format(cal.getTime()));
System.out.println("ISO Calendar : " + defaultCalDate);
System.out.println("Julian Calendar: " + julianCalDate);
System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
{code}
{noformat}
Java Calendar :1582-10-24 16:49:35
ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
ISO Calendar's dayOfWeek: 4
Julian Calendar's dayOfWeek: 7
ISO Calendar's getYearOfCentury: 15
Julian Calendar's getYearOfCentury: 16
{noformat}
Diffs
-----
tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java e74fd70
tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
Diff: https://reviews.apache.org/r/21432/diff/
Testing
-------
mvn clean install; and tested on local cluster
Thanks,
hyoungjun kim
Re: Review Request 21432: TAJO-825: Datetime type refactoring.
Posted by hyoungjun kim <ba...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21432/
-----------------------------------------------------------
(Updated May 21, 2014, 11:24 a.m.)
Review request for Tajo.
Changes
-------
I resolved all comments and upload new patch. Please review. Thanks
Bugs: TAJO-825
https://issues.apache.org/jira/browse/TAJO-825
Repository: tajo
Description
-------
Currently Tajo uses Joda time library for Datetime related features.
I tested Joda library with a next test code. It is difficult to express various time range with Joda library.
So I propose that Tajo uses PostgreSQL style date/time features. I already migrated PostgreSQL's date/time code to Tajo. I will attach that patch soon.
{code}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 1582);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.DAY_OF_MONTH, 14);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateTime defaultCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0);
Chronology julianChrono = JulianChronology.getInstance();
DateTime julianCalDate = new DateTime(1582, 10, 14, 10, 0, 0, 0, julianChrono);
System.out.println("Java Calendar :" + df.format(cal.getTime()));
System.out.println("ISO Calendar : " + defaultCalDate);
System.out.println("Julian Calendar: " + julianCalDate);
System.out.println("ISO Calendar's dayOfWeek: " + defaultCalDate.getDayOfWeek());
System.out.println("Julian Calendar's dayOfWeek: " + julianCalDate.getDayOfWeek());
System.out.println("ISO Calendar's getCenturyOfEra: " + defaultCalDate.getCenturyOfEra());
System.out.println("Julian Calendar's getCenturyOfEra: " + julianCalDate.getCenturyOfEra());
{code}
{noformat}
Java Calendar :1582-10-24 16:49:35
ISO Calendar : 1582-10-14T10:00:00.000+08:27:52
Julian Calendar: 1582-10-14T10:00:00.000+08:27:52
ISO Calendar's dayOfWeek: 4
Julian Calendar's dayOfWeek: 7
ISO Calendar's getYearOfCentury: 15
Julian Calendar's getYearOfCentury: 16
{noformat}
Diffs (updated)
-----
tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java c0f6d36
tajo-client/src/main/java/org/apache/tajo/jdbc/TajoResultSetBase.java 4c307b3
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java 6580525
tajo-common/src/main/java/org/apache/tajo/datum/DateDatum.java ad68303
tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java 5ce36e5
tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java 35dca00
tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java b7d8cf4
tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java 731ccdc
tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java 5b60e9e
tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java 0367f9c
tajo-common/src/main/java/org/apache/tajo/datum/IntervalDatum.java b6904a9
tajo-common/src/main/java/org/apache/tajo/datum/TimeDatum.java 70f62c2
tajo-common/src/main/java/org/apache/tajo/datum/TimestampDatum.java 879428b
tajo-common/src/main/java/org/apache/tajo/exception/ValueOutOfRangeException.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/json/DatumAdapter.java 2a162a9
tajo-common/src/main/java/org/apache/tajo/util/TimeStampUtil.java aa1be8b
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeConstants.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeFormat.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java PRE-CREATION
tajo-common/src/main/java/org/apache/tajo/util/datetime/TimeMeta.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/datum/TestDateDatum.java 2123dc5
tajo-common/src/test/java/org/apache/tajo/datum/TestIntervalDatum.java 3bce64c
tajo-common/src/test/java/org/apache/tajo/datum/TestTimeDatum.java c405d68
tajo-common/src/test/java/org/apache/tajo/datum/TestTimestampDatum.java 6551077
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeFormat.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestDateTimeUtil.java PRE-CREATION
tajo-common/src/test/java/org/apache/tajo/util/TestTimeStampUtil.java 353063d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromDate.java a010a7d
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTime.java 28e14fb
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java 3b46929
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/DateTimePartFromUnixTimeStamp.java 6aaded0
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToCharTimestamp.java 2a74ff5
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToDate.java ba6a020
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestamp.java 1cf6870
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampInt.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/ToTimestampText.java PRE-CREATION
tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java e74fd70
tajo-core/src/main/java/org/apache/tajo/engine/planner/UniformRangePartition.java f6922ed
tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java bab6ec7
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestIntervalType.java 4d18be3
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLDateTimeTypes.java c9c8dd4
tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java 6e35d3b
tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java 507ef61
tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java 2f5a755
tajo-storage/src/main/java/org/apache/tajo/storage/TextSerializerDeserializer.java 41ee720
tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java 0b764cc
Diff: https://reviews.apache.org/r/21432/diff/
Testing
-------
mvn clean install; and tested on local cluster
Thanks,
hyoungjun kim