Skip to content

Commit ac0d231

Browse files
committed
Add tests
1 parent 625da5b commit ac0d231

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/optimizer/LocalPhysicalPlanOptimizerTests.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2092,6 +2092,25 @@ public void testKnnWithExplicitLimit() {
20922092
assertThat(knnQuery.k(), is(10));
20932093
}
20942094

2095+
public void testKnnWithExplicitLimitAndExistingTopK() {
2096+
var query = """
2097+
from test
2098+
| where knn(dense_vector, [0, 1, 2], {"k": 10})
2099+
| limit 50
2100+
""";
2101+
var analyzer = makeAnalyzer("mapping-all-types.json");
2102+
var plan = plannerOptimizer.plan(query, IS_SV_STATS, analyzer);
2103+
var limitExec = as(plan, LimitExec.class);
2104+
assertThat(limitExec.limit().fold(FoldContext.small()), is(50));
2105+
var exchangeExec = as(limitExec.child(), ExchangeExec.class);
2106+
var projectExec = as(exchangeExec.child(), ProjectExec.class);
2107+
var fieldExtractExec = as(projectExec.child(), FieldExtractExec.class);
2108+
var queryExec = as(fieldExtractExec.child(), EsQueryExec.class);
2109+
assertThat(queryExec.limit().fold(FoldContext.small()), is(50));
2110+
var knnQuery = as(queryExec.query(), KnnVectorQueryBuilder.class);
2111+
assertThat(knnQuery.k(), is(10));
2112+
}
2113+
20952114
public void testMultipleKnnQueriesLimit() {
20962115
var query = """
20972116
from test

0 commit comments

Comments
 (0)