Skip to content

Commit 0a6ef3f

Browse files
committed
Minor improvements
1 parent 035ae04 commit 0a6ef3f

File tree

4 files changed

+14
-27
lines changed

4 files changed

+14
-27
lines changed

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/inference/completion/CompletionOperator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void addInput(Page input) {
5656
super.addInput(input.appendBlock(promptEvaluator.eval(input)));
5757
} catch (Exception e) {
5858
releasePageOnAnyThread(input);
59-
throw (e);
59+
throw e;
6060
}
6161
}
6262

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/inference/rerank/RerankOperator.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.elasticsearch.xpack.esql.inference.rerank;
99

10+
import org.elasticsearch.compute.data.Block;
11+
import org.elasticsearch.compute.data.DoubleBlock;
1012
import org.elasticsearch.compute.data.Page;
1113
import org.elasticsearch.compute.operator.DriverContext;
1214
import org.elasticsearch.compute.operator.EvalOperator.ExpressionEvaluator;
@@ -54,10 +56,11 @@ public RerankOperator(
5456
@Override
5557
public void addInput(Page input) {
5658
try {
57-
super.addInput(input.appendBlock(rowEncoder.eval(input)));
59+
Block inputBlock = rowEncoder.eval(input);
60+
super.addInput(input.appendBlock(inputBlock));
5861
} catch (Exception e) {
5962
releasePageOnAnyThread(input);
60-
throw (e);
63+
throw e;
6164
}
6265
}
6366

@@ -85,8 +88,9 @@ protected RerankOperatorRequestIterator requests(Page inputPage) {
8588
*/
8689
@Override
8790
protected RerankOperatorOutputBuilder outputBuilder(Page input) {
91+
DoubleBlock.Builder outputBlockBuilder = blockFactory().newDoubleBlockBuilder(input.getPositionCount());
8892
return new RerankOperatorOutputBuilder(
89-
blockFactory().newDoubleBlockBuilder(input.getPositionCount()),
93+
outputBlockBuilder,
9094
input.projectBlocks(IntStream.range(0, input.getBlockCount() - 1).toArray()),
9195
scoreChannel
9296
);

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/inference/InferenceOperatorTestCase.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.elasticsearch.common.util.concurrent.EsExecutors;
1919
import org.elasticsearch.compute.data.Block;
2020
import org.elasticsearch.compute.data.BlockFactory;
21+
import org.elasticsearch.compute.data.BlockUtils;
2122
import org.elasticsearch.compute.data.BooleanBlock;
2223
import org.elasticsearch.compute.data.BytesRefBlock;
2324
import org.elasticsearch.compute.data.DoubleBlock;
@@ -78,18 +79,18 @@ protected ThreadPool threadPool() {
7879

7980
@Override
8081
protected SourceOperator simpleInput(BlockFactory blockFactory, int size) {
81-
int minSize = Integer.min(1, size / 10);
82-
return new AbstractBlockSourceOperator(blockFactory, between(minSize, 8 * 1024)) {
82+
return new AbstractBlockSourceOperator(blockFactory, 8 * 1024) {
8383
@Override
8484
protected int remaining() {
8585
return size - currentPosition;
8686
}
8787

8888
@Override
8989
protected Page createPage(int positionOffset, int length) {
90+
length = Integer.min(length, remaining());
9091
try (var builder = blockFactory.newBytesRefVectorBuilder(length)) {
9192
for (int i = 0; i < length; i++) {
92-
builder.appendBytesRef(new BytesRef(randomAlphaOfLength(1000)));
93+
builder.appendBytesRef(new BytesRef(randomAlphaOfLength(10)));
9394
}
9495
currentPosition += length;
9596
return new Page(builder.build().asBlock());
@@ -195,9 +196,7 @@ protected EvalOperator.ExpressionEvaluator.Factory evaluatorFactory(int channel)
195196
return context -> new EvalOperator.ExpressionEvaluator() {
196197
@Override
197198
public Block eval(Page page) {
198-
Block b = page.getBlock(channel);
199-
b.incRef();
200-
return b;
199+
return BlockUtils.deepCopyOf(page.getBlock(channel), blockFactory());
201200
}
202201

203202
@Override

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/inference/rerank/RerankOperatorTests.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,14 @@
1111
import org.elasticsearch.compute.data.BytesRefBlock;
1212
import org.elasticsearch.compute.data.DoubleBlock;
1313
import org.elasticsearch.compute.data.Page;
14-
import org.elasticsearch.compute.operator.EvalOperator;
1514
import org.elasticsearch.compute.operator.Operator;
1615
import org.elasticsearch.xpack.core.inference.action.InferenceAction;
1716
import org.elasticsearch.xpack.core.inference.results.RankedDocsResults;
18-
import org.elasticsearch.xpack.esql.action.ColumnInfoImpl;
19-
import org.elasticsearch.xpack.esql.core.type.DataType;
2017
import org.elasticsearch.xpack.esql.inference.InferenceOperatorTestCase;
21-
import org.elasticsearch.xpack.esql.inference.XContentRowEncoder;
2218
import org.hamcrest.Matcher;
2319

2420
import java.util.ArrayList;
2521
import java.util.List;
26-
import java.util.Map;
2722

2823
import static org.hamcrest.Matchers.equalTo;
2924
import static org.hamcrest.Matchers.hasSize;
@@ -35,18 +30,7 @@ public class RerankOperatorTests extends InferenceOperatorTestCase<RankedDocsRes
3530

3631
@Override
3732
protected Operator.OperatorFactory simple(SimpleOptions options) {
38-
Map<ColumnInfoImpl, EvalOperator.ExpressionEvaluator.Factory> fieldEvaluators = Map.of(
39-
new ColumnInfoImpl(randomIdentifier(), DataType.TEXT, List.of()),
40-
evaluatorFactory(0)
41-
);
42-
43-
return new RerankOperator.Factory(
44-
mockedSimpleInferenceRunner(),
45-
SIMPLE_INFERENCE_ID,
46-
SIMPLE_QUERY,
47-
XContentRowEncoder.yamlRowEncoderFactory(fieldEvaluators),
48-
1
49-
);
33+
return new RerankOperator.Factory(mockedSimpleInferenceRunner(), SIMPLE_INFERENCE_ID, SIMPLE_QUERY, evaluatorFactory(0), 1);
5034
}
5135

5236
@Override

0 commit comments

Comments
 (0)