/** Returns a list of the time units covered by an interval type such * as HOUR TO SECOND. Adds MILLISECOND if the end is SECOND, to deal with * fractional seconds. */ private static List<TimeUnit> getTimeUnits(SqlTypeName typeName) { final TimeUnit start = typeName.getStartUnit(); final TimeUnit end = typeName.getEndUnit(); final ImmutableList<TimeUnit> list = TIME_UNITS.subList(start.ordinal(), end.ordinal() + 1); if (end == TimeUnit.SECOND) { return CompositeList.of(list, ImmutableList.of(TimeUnit.MILLISECOND)); } return list; }
/** Returns a list of the time units covered by an interval type such * as HOUR TO SECOND. Adds MILLISECOND if the end is SECOND, to deal with * fractional seconds. */ private static List<TimeUnit> getTimeUnits(SqlTypeName typeName) { final TimeUnit start = typeName.getStartUnit(); final TimeUnit end = typeName.getEndUnit(); final ImmutableList<TimeUnit> list = TIME_UNITS.subList(start.ordinal(), end.ordinal() + 1); if (end == TimeUnit.SECOND) { return CompositeList.of(list, ImmutableList.of(TimeUnit.MILLISECOND)); } return list; }
TimeUnit.YEAR.ordinal()); assertEquals( 1, TimeUnit.MONTH.ordinal()); assertEquals( 2, TimeUnit.DAY.ordinal()); assertEquals( 3, TimeUnit.HOUR.ordinal()); assertEquals( 4, TimeUnit.MINUTE.ordinal()); assertEquals( 5, TimeUnit.SECOND.ordinal()); boolean b = (TimeUnit.YEAR.ordinal() < TimeUnit.MONTH.ordinal()) && (TimeUnit.MONTH.ordinal() < TimeUnit.DAY.ordinal()) && (TimeUnit.DAY.ordinal() < TimeUnit.HOUR.ordinal()) && (TimeUnit.HOUR.ordinal() < TimeUnit.MINUTE.ordinal()) && (TimeUnit.MINUTE.ordinal() < TimeUnit.SECOND.ordinal()); assertTrue(b);
TimeUnit.YEAR.ordinal()); assertEquals( 1, TimeUnit.MONTH.ordinal()); assertEquals( 2, TimeUnit.DAY.ordinal()); assertEquals( 3, TimeUnit.HOUR.ordinal()); assertEquals( 4, TimeUnit.MINUTE.ordinal()); assertEquals( 5, TimeUnit.SECOND.ordinal()); boolean b = (TimeUnit.YEAR.ordinal() < TimeUnit.MONTH.ordinal()) && (TimeUnit.MONTH.ordinal() < TimeUnit.DAY.ordinal()) && (TimeUnit.DAY.ordinal() < TimeUnit.HOUR.ordinal()) && (TimeUnit.HOUR.ordinal() < TimeUnit.MINUTE.ordinal()) && (TimeUnit.MINUTE.ordinal() < TimeUnit.SECOND.ordinal()); assertTrue(b);
that.intervalQualifier); if (thisStart.ordinal() > thatStart.ordinal()) { thisEnd = thisStart; thisStart = thatStart; secondPrec = that.intervalQualifier.getStartPrecisionPreservingDefault(); } else if (thisStart.ordinal() == thatStart.ordinal()) { secondPrec = SqlIntervalQualifier.combineStartPrecisionPreservingDefault( this.intervalQualifier, that.intervalQualifier); } else if (null == thisEnd || thisEnd.ordinal() < thatStart.ordinal()) { thisEnd = thatStart; if (null == thisEnd || thisEnd.ordinal() < thatEnd.ordinal()) { thisEnd = thatEnd;
that.intervalQualifier); if (thisStart.ordinal() > thatStart.ordinal()) { thisEnd = thisStart; thisStart = thatStart; secondPrec = that.intervalQualifier.getStartPrecisionPreservingDefault(); } else if (thisStart.ordinal() == thatStart.ordinal()) { secondPrec = SqlIntervalQualifier.combineStartPrecisionPreservingDefault( this.intervalQualifier, that.intervalQualifier); } else if (null == thisEnd || thisEnd.ordinal() < thatStart.ordinal()) { thisEnd = thatStart; if (null == thisEnd || thisEnd.ordinal() < thatEnd.ordinal()) { thisEnd = thatEnd;