@@ -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