[CALCITE-2299] Add support for NANOSECOND in TimeUnit and TimeUnitRange (Sergey Nuyanzin)
Close apache/calcite-avatica#58 Signed-off-by: Kevin Risden <kris...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/calcite-avatica/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite-avatica/commit/9a378452 Tree: http://git-wip-us.apache.org/repos/asf/calcite-avatica/tree/9a378452 Diff: http://git-wip-us.apache.org/repos/asf/calcite-avatica/diff/9a378452 Branch: refs/heads/branch-avatica-1.12 Commit: 9a37845290e708136b098026bd8b121ea86dc5a5 Parents: 732e7d7 Author: snuyanzin <snuyan...@gmail.com> Authored: Thu Jun 14 16:48:47 2018 +0300 Committer: Kevin Risden <kris...@apache.org> Committed: Thu Jun 14 11:14:59 2018 -0500 ---------------------------------------------------------------------- .../main/java/org/apache/calcite/avatica/util/TimeUnit.java | 9 ++++++--- .../java/org/apache/calcite/avatica/util/TimeUnitRange.java | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/9a378452/core/src/main/java/org/apache/calcite/avatica/util/TimeUnit.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/avatica/util/TimeUnit.java b/core/src/main/java/org/apache/calcite/avatica/util/TimeUnit.java index 4516410..b81d707 100644 --- a/core/src/main/java/org/apache/calcite/avatica/util/TimeUnit.java +++ b/core/src/main/java/org/apache/calcite/avatica/util/TimeUnit.java @@ -27,8 +27,9 @@ import java.math.BigDecimal; * * <p>The others ({@link #QUARTER}, {@link #WEEK}, {@link #MILLISECOND}, * {@link #DOW}, {@link #DOY}, {@link #EPOCH}, {@link #DECADE}, {@link #CENTURY}, - * {@link #MILLENNIUM}, {@link #MICROSECOND}, {@link #ISODOW} and {@link #ISOYEAR}) - * are convenient to use internally, when converting to and from UNIX timestamps. + * {@link #MILLENNIUM}, {@link #MICROSECOND}, {@link #NANOSECOND}, {@link #ISODOW} + * and {@link #ISOYEAR}) are convenient to use internally, + * when converting to and from UNIX timestamps. * And also may be arguments to the {@code EXTRACT}, {@code TIMESTAMPADD} and * {@code TIMESTAMPDIFF} functions. */ @@ -49,7 +50,9 @@ public enum TimeUnit { BigDecimal.valueOf(53)), MILLISECOND(false, '.', BigDecimal.ONE, BigDecimal.valueOf(1000)), MICROSECOND(false, '.', BigDecimal.ONE.scaleByPowerOfTen(-3), - BigDecimal.valueOf(1000000)), + BigDecimal.valueOf(1000_000)), + NANOSECOND(false, '.', BigDecimal.ONE.scaleByPowerOfTen(-6), + BigDecimal.valueOf(1000_000_000)), DOW(false, '-', null, null), ISODOW(false, '-', null, null), DOY(false, '-', null, null), http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/9a378452/core/src/main/java/org/apache/calcite/avatica/util/TimeUnitRange.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/avatica/util/TimeUnitRange.java b/core/src/main/java/org/apache/calcite/avatica/util/TimeUnitRange.java index 98e4fd2..8710692 100644 --- a/core/src/main/java/org/apache/calcite/avatica/util/TimeUnitRange.java +++ b/core/src/main/java/org/apache/calcite/avatica/util/TimeUnitRange.java @@ -44,6 +44,7 @@ public enum TimeUnitRange { WEEK(TimeUnit.WEEK, null), MILLISECOND(TimeUnit.MILLISECOND, null), MICROSECOND(TimeUnit.MICROSECOND, null), + NANOSECOND(TimeUnit.NANOSECOND, null), DOW(TimeUnit.DOW, null), ISODOW(TimeUnit.ISODOW, null), DOY(TimeUnit.DOY, null),