in tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/function/datetime/DatePartFromTimestamp.java [50:115]
public Datum eval(Tuple params) {
Datum target = params.get(0);
TimestampDatum timestamp = null;
if(target instanceof NullDatum || params.get(1) instanceof NullDatum) {
return NullDatum.get();
}
if(params.get(1) instanceof TimestampDatum) {
timestamp = (TimestampDatum)(params.get(1));
} else {
return NullDatum.get();
}
if (extractor == null) {
String extractType = target.asChars().toLowerCase();
if (extractType.equals("century")) {
extractor = new CenturyExtractorFromTimestamp();
} else if (extractType.equals("day")) {
extractor = new DayExtractorFromTimestamp();
} else if (extractType.equals("decade")) {
extractor = new DecadeExtractorFromTimestamp();
} else if (extractType.equals("dow")) {
extractor = new DowExtractorFromTimestamp();
} else if (extractType.equals("doy")) {
extractor = new DoyExtractorFromTimestamp();
} else if (extractType.equals("epoch")) {
extractor = new EpochExtractorFromTimestamp();
} else if (extractType.equals("hour")) {
extractor = new HourExtractorFromTimestamp();
} else if (extractType.equals("isodow")) {
extractor = new ISODowExtractorFromTimestamp();
} else if (extractType.equals("isoyear")) {
extractor = new ISOYearExtractorFromTimestamp();
} else if (extractType.equals("microseconds")) {
extractor = new MicrosecondsExtractorFromTimestamp();
} else if (extractType.equals("millennium")) {
extractor = new MillenniumExtractorFromTimestamp();
} else if (extractType.equals("milliseconds")) {
extractor = new MillisecondsExtractorFromTimestamp();
} else if (extractType.equals("minute")) {
extractor = new MinuteExtractorFromTimestamp();
} else if (extractType.equals("month")) {
extractor = new MonthExtractorFromTimestamp();
} else if (extractType.equals("quarter")) {
extractor = new QuarterExtractorFromTimestamp();
} else if (extractType.equals("second")) {
extractor = new SecondExtractorFromTimestamp();
} else if (extractType.equals("timezone")) {
extractor = new NullExtractorFromTimestamp();
} else if (extractType.equals("timezone_hour")) {
extractor = new NullExtractorFromTimestamp();
} else if (extractType.equals("timezone_minute")) {
extractor = new NullExtractorFromTimestamp();
} else if (extractType.equals("week")) {
extractor = new WeekExtractorFromTimestamp();
} else if (extractType.equals("year")) {
extractor = new YearExtractorFromTimestamp();
} else {
extractor = new NullExtractorFromTimestamp();
}
}
return extractor.extract(timestamp);
}