|
@@ -9,10 +9,12 @@ package org.elasticsearch.xpack.sql.expression.function.scalar.datetime;
|
|
|
import org.elasticsearch.xpack.sql.TestUtils;
|
|
|
import org.elasticsearch.xpack.sql.expression.Expression;
|
|
|
import org.elasticsearch.xpack.sql.expression.Literal;
|
|
|
+import org.elasticsearch.xpack.sql.session.Configuration;
|
|
|
import org.elasticsearch.xpack.sql.tree.AbstractNodeTestCase;
|
|
|
|
|
|
import java.time.ZoneId;
|
|
|
import java.time.ZonedDateTime;
|
|
|
+import java.time.temporal.ChronoField;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
import static org.elasticsearch.xpack.sql.tree.Source.EMPTY;
|
|
@@ -62,4 +64,15 @@ public class CurrentDateTimeTests extends AbstractNodeTestCase<CurrentDateTime,
|
|
|
assertEquals(123_456_780, CurrentDateTime.nanoPrecision(zdt, Literal.of(EMPTY, 8)).getNano());
|
|
|
assertEquals(123_456_789, CurrentDateTime.nanoPrecision(zdt, Literal.of(EMPTY, 9)).getNano());
|
|
|
}
|
|
|
+
|
|
|
+ public void testDefaultPrecision() {
|
|
|
+ Configuration configuration = TestUtils.randomConfiguration();
|
|
|
+ // null precision means default precision
|
|
|
+ CurrentDateTime cdt = new CurrentDateTime(EMPTY, null, configuration);
|
|
|
+ ZonedDateTime now = configuration.now();
|
|
|
+ assertEquals(now.get(ChronoField.MILLI_OF_SECOND), ((ZonedDateTime) cdt.fold()).get(ChronoField.MILLI_OF_SECOND));
|
|
|
+
|
|
|
+ ZonedDateTime zdt = ZonedDateTime.parse("2019-02-26T12:34:56.123456789Z");
|
|
|
+ assertEquals(123_000_000, CurrentDateTime.nanoPrecision(zdt, null).getNano());
|
|
|
+ }
|
|
|
}
|