Skip to content

Commit c4f3da7

Browse files
committed
Add test for multiple limits combination
1 parent 8fe374d commit c4f3da7

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8716,7 +8716,7 @@ public void testKnnWithTopN() {
87168716
assertThat(knn.k(), equalTo(10));
87178717
}
87188718

8719-
public void testKnnWithMultipleLimits() {
8719+
public void testKnnWithMultipleLimitsAfterTopN() {
87208720
assumeTrue("knn must be enabled", EsqlCapabilities.Cap.KNN_FUNCTION_V4.isEnabled());
87218721

87228722
var query = """
@@ -8736,6 +8736,24 @@ public void testKnnWithMultipleLimits() {
87368736
assertThat(knn.k(), equalTo(20));
87378737
}
87388738

8739+
public void testKnnWithMultipleLimitsCombined() {
8740+
assumeTrue("knn must be enabled", EsqlCapabilities.Cap.KNN_FUNCTION_V4.isEnabled());
8741+
8742+
var query = """
8743+
from test metadata _score
8744+
| where knn(dense_vector, [0, 1, 2])
8745+
| limit 20
8746+
| limit 10
8747+
""";
8748+
var optimized = planTypes(query);
8749+
8750+
var limit = as(optimized, Limit.class);
8751+
assertThat(limit.limit().fold(FoldContext.small()), equalTo(10));
8752+
var filter = as(limit.child(), Filter.class);
8753+
var knn = as(filter.condition(), Knn.class);
8754+
assertThat(knn.k(), equalTo(10));
8755+
}
8756+
87398757
public void testKnnWithMultipleClauses() {
87408758
assumeTrue("knn must be enabled", EsqlCapabilities.Cap.KNN_FUNCTION_V4.isEnabled());
87418759

0 commit comments

Comments
 (0)