Skip to content

Commit 3682743

Browse files
committed
Some more fixes for tests
1 parent 67affcf commit 3682743

File tree

10 files changed

+53
-21
lines changed

10 files changed

+53
-21
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
9192000
1+
9194000
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
available_processors_in_os_stats,9193000
1+
esql_date_range_created_version,9194000

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/BlockFactory.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -486,9 +486,21 @@ public DateRangeBlockBuilder newDateRangeBlockBuilder(int estimatedSize) {
486486
}
487487

488488
public DateRangeBlock newConstantDateRangeBlock(DateRangeBlockBuilder.DateRangeLiteral value, int positions) {
489-
var fromBuilder = newConstantLongBlockWith(value.from(), positions);
490-
var toBuilder = newConstantLongBlockWith(value.to(), positions);
491-
return new DateRangeArrayBlock(fromBuilder, toBuilder);
489+
try (var builder = newDateRangeBlockBuilder(positions)) {
490+
for (int i = 0; i < positions; i++) {
491+
if (value.from() == null) {
492+
builder.from().appendNull();
493+
} else {
494+
builder.from().appendLong(value.from());
495+
}
496+
if (value.to() == null) {
497+
builder.to().appendNull();
498+
} else {
499+
builder.to().appendLong(value.to());
500+
}
501+
}
502+
return builder.build();
503+
}
492504
}
493505

494506
public DateRangeBlock newDateRangeBlock(long[] fromValues, long[] toValues, int positions) {

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/DateRangeArrayBlock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public long ramBytesUsed() {
205205

206206
@Override
207207
public boolean equals(Object obj) {
208-
if (obj instanceof DateRangeArrayBlock that) {
208+
if (obj instanceof DateRangeBlock that) {
209209
return DateRangeBlock.equals(this, that);
210210
}
211211
return false;

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/DateRangeBlockBuilder.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,16 @@ public DateRangeBlockBuilder appendNull() {
103103
}
104104

105105
public DateRangeBlockBuilder appendDateRange(DateRangeLiteral lit) {
106-
fromBuilder.appendLong(lit.from);
107-
toBuilder.appendLong(lit.to);
106+
if (lit.from == null) {
107+
fromBuilder.appendNull();
108+
} else {
109+
fromBuilder.appendLong(lit.from);
110+
}
111+
if (lit.to == null) {
112+
toBuilder.appendNull();
113+
} else {
114+
toBuilder.appendLong(lit.to);
115+
}
108116
return this;
109117
}
110118

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/ResultBuilderForDateRange.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@
88
package org.elasticsearch.compute.operator.topn;
99

1010
import org.apache.lucene.util.BytesRef;
11-
import org.elasticsearch.compute.data.DateRangeBlockBuilder;
1211
import org.elasticsearch.compute.data.Block;
1312
import org.elasticsearch.compute.data.BlockFactory;
14-
import org.elasticsearch.index.mapper.BlockLoader;
15-
16-
import java.util.List;
13+
import org.elasticsearch.compute.data.DateRangeBlockBuilder;
1714

1815
public class ResultBuilderForDateRange implements ResultBuilder {
1916

@@ -34,8 +31,16 @@ public void decodeValue(BytesRef values) {
3431
if (count == 0) {
3532
builder.appendNull();
3633
} else {
37-
builder.from().appendLong(TopNEncoder.DEFAULT_UNSORTABLE.decodeLong(values));
38-
builder.to().appendLong(TopNEncoder.DEFAULT_UNSORTABLE.decodeLong(values));
34+
if (TopNEncoder.DEFAULT_UNSORTABLE.decodeBoolean(values)) {
35+
builder.from().appendLong(TopNEncoder.DEFAULT_UNSORTABLE.decodeLong(values));
36+
} else {
37+
builder.from().appendNull();
38+
}
39+
if (TopNEncoder.DEFAULT_UNSORTABLE.decodeBoolean(values)) {
40+
builder.to().appendLong(TopNEncoder.DEFAULT_UNSORTABLE.decodeLong(values));
41+
} else {
42+
builder.to().appendNull();
43+
}
3944
}
4045
}
4146

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/topn/ValueExtractorForDateRange.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,17 @@ public class ValueExtractorForDateRange implements ValueExtractor {
2121
@Override
2222
public void writeValue(BreakingBytesRefBuilder values, int position) {
2323
TopNEncoder.DEFAULT_UNSORTABLE.encodeVInt(1, values);
24-
if (block.isNull(position)) {
24+
if (block.getFromBlock().isNull(position)) {
2525
TopNEncoder.DEFAULT_UNSORTABLE.encodeBoolean(false, values);
2626
} else {
2727
TopNEncoder.DEFAULT_UNSORTABLE.encodeBoolean(true, values);
28-
TopNEncoder.DEFAULT_UNSORTABLE.encodeDouble(block.getFromBlock().getLong(position), values);
29-
TopNEncoder.DEFAULT_UNSORTABLE.encodeDouble(block.getToBlock().getLong(position), values);
28+
TopNEncoder.DEFAULT_UNSORTABLE.encodeLong(block.getFromBlock().getLong(position), values);
29+
}
30+
if (block.getToBlock().isNull(position)) {
31+
TopNEncoder.DEFAULT_UNSORTABLE.encodeBoolean(false, values);
32+
} else {
33+
TopNEncoder.DEFAULT_UNSORTABLE.encodeBoolean(true, values);
34+
TopNEncoder.DEFAULT_UNSORTABLE.encodeLong(block.getToBlock().getLong(position), values);
3035
}
3136
}
3237

x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/operator/topn/ExtractorTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,11 @@ public static AggregateMetricDoubleLiteral randomAggregateMetricDouble(boolean a
263263
);
264264
}
265265

266-
private static DateRangeBlockBuilder.DateRangeLiteral randomDateRange(boolean isNull) {
266+
private static DateRangeBlockBuilder.DateRangeLiteral randomDateRange(boolean haveNulls) {
267267
var from = randomMillisUpToYear9999();
268268
var to = randomLongBetween(from + 1, MAX_MILLIS_BEFORE_9999);
269-
return isNull ? null : new DateRangeBlockBuilder.DateRangeLiteral(from, to);
269+
return haveNulls
270+
? new DateRangeBlockBuilder.DateRangeLiteral(randomBoolean() ? from : null, randomBoolean() ? to : null)
271+
: new DateRangeBlockBuilder.DateRangeLiteral(from, to);
270272
}
271273
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/aggregate/Present.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ protected TypeResolution resolveType() {
138138
dt -> dt.isCounter() == false && dt != DataType.DENSE_VECTOR && dt != DataType.DATE_RANGE,
139139
sourceText(),
140140
DEFAULT,
141-
"any type except counter types or dense_vector / date_range"
141+
"any type except counter types, dense_vector or date_range"
142142
);
143143
}
144144
}

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/aggregate/PresentErrorTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ protected Matcher<String> expectedTypeErrorMatcher(List<Set<DataType>> validPerP
4343

4444
@Override
4545
protected void assertNumberOfCheckedSignatures(int checked) {
46-
assertThat(checked, equalTo(1));
46+
assertThat(checked, equalTo(2));
4747
}
4848
}

0 commit comments

Comments
 (0)