Skip to content

Commit 9dfc55c

Browse files
committed
fix CSV tests
1 parent a7dd46c commit 9dfc55c

File tree

2 files changed

+41
-18
lines changed

2 files changed

+41
-18
lines changed

x-pack/plugin/esql/qa/testFixtures/src/main/resources/date_nanos.csv-spec

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -549,25 +549,43 @@ yr:date_nanos | mo:date_nanos | mn:date_nanos
549549
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T12:10:00.000000000Z | 2023-10-23T12:15:03.360000000Z
550550
;
551551

552-
Date trunc on date nanos
552+
Bucket Date nanos by Year
553553
required_capability: date_trunc_date_nanos
554554
required_capability: date_nanos_bucket
555555

556556
FROM date_nanos
557557
| WHERE millis > "2020-01-01"
558-
| EVAL yr = BUCKET(nanos, 1 year), mo = BUCKET(nanos, 1 month), mn = BUCKET(nanos, 10 minutes), ms = BUCKET(nanos, 1 millisecond)
559-
| SORT nanos DESC
560-
| KEEP yr, mo, mn, ms;
558+
| STATS ct = count(*) BY yr = BUCKET(nanos, 1 year);
561559

562-
yr:date_nanos | mo:date_nanos | mn:date_nanos | ms:date_nanos
563-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T13:50:00.000000000Z | 2023-10-23T13:55:01.543000000Z
564-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T13:50:00.000000000Z | 2023-10-23T13:53:55.832000000Z
565-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T13:50:00.000000000Z | 2023-10-23T13:52:55.015000000Z
566-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T13:50:00.000000000Z | 2023-10-23T13:51:54.732000000Z
567-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T13:30:00.000000000Z | 2023-10-23T13:33:34.937000000Z
568-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T12:20:00.000000000Z | 2023-10-23T12:27:28.948000000Z
569-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T12:10:00.000000000Z | 2023-10-23T12:15:03.360000000Z
570-
2023-01-01T00:00:00.000000000Z | 2023-10-01T00:00:00.000000000Z | 2023-10-23T12:10:00.000000000Z | 2023-10-23T12:15:03.360000000Z
560+
ct:long | yr:date_nanos
561+
8 | 2023-01-01T00:00:00.000000000Z
562+
;
563+
564+
Bucket Date nanos by Month
565+
required_capability: date_trunc_date_nanos
566+
required_capability: date_nanos_bucket
567+
568+
FROM date_nanos
569+
| WHERE millis > "2020-01-01"
570+
| STATS ct = count(*) BY mo = BUCKET(nanos, 1 month);
571+
572+
ct:long | mo:date_nanos
573+
8 | 2023-10-01T00:00:00.000000000Z
574+
;
575+
576+
Bucket Date nanos by 10 minutes
577+
required_capability: date_trunc_date_nanos
578+
required_capability: date_nanos_bucket
579+
580+
FROM date_nanos
581+
| WHERE millis > "2020-01-01"
582+
| STATS ct = count(*) BY mn = BUCKET(nanos, 10 minutes);
583+
584+
ct:long | mn:date_nanos
585+
4 | 2023-10-23T13:50:00.000000000Z
586+
1 | 2023-10-23T13:30:00.000000000Z
587+
1 | 2023-10-23T12:20:00.000000000Z
588+
2 | 2023-10-23T12:10:00.000000000Z
571589
;
572590

573591
Add date nanos

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/grouping/BucketTests.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.elasticsearch.common.Rounding;
1515
import org.elasticsearch.common.time.DateUtils;
1616
import org.elasticsearch.index.mapper.DateFieldMapper;
17+
import org.elasticsearch.logging.LogManager;
1718
import org.elasticsearch.xpack.esql.core.expression.Expression;
1819
import org.elasticsearch.xpack.esql.core.tree.Source;
1920
import org.elasticsearch.xpack.esql.core.type.DataType;
@@ -297,15 +298,19 @@ private static TestCaseSupplier.TypedData keywordDateLiteral(String name, DataTy
297298
private static Matcher<Object> resultsMatcher(List<TestCaseSupplier.TypedData> typedData) {
298299
if (typedData.get(0).type() == DataType.DATETIME) {
299300
long millis = ((Number) typedData.get(0).data()).longValue();
300-
return equalTo(Rounding.builder(Rounding.DateTimeUnit.DAY_OF_MONTH).build().prepareForUnknown().round(millis));
301+
long expected = Rounding.builder(Rounding.DateTimeUnit.DAY_OF_MONTH).build().prepareForUnknown().round(millis);
302+
LogManager.getLogger(getTestClass()).info("Expected: " + Instant.ofEpochMilli(expected));
303+
LogManager.getLogger(getTestClass()).info("Input: " + Instant.ofEpochMilli(millis));
304+
return equalTo(expected);
301305
}
302306
if (typedData.get(0).type() == DataType.DATE_NANOS) {
303307
long nanos = ((Number) typedData.get(0).data()).longValue();
304-
return equalTo(
305-
DateUtils.toNanoSeconds(
306-
Rounding.builder(Rounding.DateTimeUnit.DAY_OF_MONTH).build().prepareForUnknown().round(DateUtils.toMilliSeconds(nanos))
307-
)
308+
long expected = DateUtils.toNanoSeconds(
309+
Rounding.builder(Rounding.DateTimeUnit.DAY_OF_MONTH).build().prepareForUnknown().round(DateUtils.toMilliSeconds(nanos))
308310
);
311+
LogManager.getLogger(getTestClass()).info("Expected: " + DateUtils.toInstant(expected));
312+
LogManager.getLogger(getTestClass()).info("Input: " + DateUtils.toInstant(nanos));
313+
return equalTo(expected);
309314
}
310315
return equalTo(((Number) typedData.get(0).data()).doubleValue());
311316
}

0 commit comments

Comments
 (0)