@@ -8439,7 +8439,7 @@ public void testPushDownConjunctionsToKnnPrefilter() {
84398439
84408440 var query = """
84418441 from test
8442- | where knn(dense_vector, [0, 1, 2], 10 ) and integer > 10
8442+ | where knn(dense_vector, [0, 1, 2]) and integer > 10
84438443 """ ;
84448444 var optimized = planTypes (query );
84458445
@@ -8459,7 +8459,7 @@ public void testPushDownMultipleFiltersToKnnPrefilter() {
84598459
84608460 var query = """
84618461 from test
8462- | where knn(dense_vector, [0, 1, 2], 10 )
8462+ | where knn(dense_vector, [0, 1, 2])
84638463 | where integer > 10
84648464 | where keyword == "test"
84658465 """ ;
@@ -8482,7 +8482,7 @@ public void testNotPushDownDisjunctionsToKnnPrefilter() {
84828482
84838483 var query = """
84848484 from test
8485- | where knn(dense_vector, [0, 1, 2], 10 ) or integer > 10
8485+ | where knn(dense_vector, [0, 1, 2]) or integer > 10
84868486 """ ;
84878487 var optimized = planTypes (query );
84888488
@@ -8512,7 +8512,7 @@ public void testPushDownConjunctionsAndNotDisjunctionsToKnnPrefilter() {
85128512 var query = """
85138513 from test
85148514 | where
8515- ((knn(dense_vector, [0, 1, 2], 10 ) or integer > 10) and keyword == "test") and ((short < 5) or (double > 5.0))
8515+ ((knn(dense_vector, [0, 1, 2]) or integer > 10) and keyword == "test") and ((short < 5) or (double > 5.0))
85168516 """ ;
85178517 var optimized = planTypes (query );
85188518
@@ -8547,7 +8547,7 @@ public void testMorePushDownConjunctionsAndNotDisjunctionsToKnnPrefilter() {
85478547 var query = """
85488548 from test
85498549 | where
8550- ((knn(dense_vector, [0, 1, 2], 10 ) and integer > 10) or keyword == "test") or ((short < 5) and (double > 5.0))
8550+ ((knn(dense_vector, [0, 1, 2]) and integer > 10) or keyword == "test") or ((short < 5) and (double > 5.0))
85518551 """ ;
85528552 var optimized = planTypes (query );
85538553
@@ -8575,7 +8575,7 @@ public void testMultipleKnnQueriesInPrefilters() {
85758575 */
85768576 var query = """
85778577 from test
8578- | where ((knn(dense_vector, [0, 1, 2], 10 ) or integer > 10) and ((keyword == "test") or knn(dense_vector, [4, 5, 6], 10 )))
8578+ | where ((knn(dense_vector, [0, 1, 2]) or integer > 10) and ((keyword == "test") or knn(dense_vector, [4, 5, 6])))
85798579 """ ;
85808580 var optimized = planTypes (query );
85818581
@@ -8662,18 +8662,20 @@ public void testKnnWithMultipleClauses() {
86628662 from test metadata _score
86638663 | where knn(dense_vector, [0, 1, 2]) and match(keyword, "test")
86648664 | where knn(dense_vector, [1, 2, 3])
8665- | limit 30
8666- | sort _score desc
8665+ | sort _score
86678666 | limit 10
86688667 """ ;
86698668 var optimized = planTypes (query );
86708669
86718670 var topN = as (optimized , TopN .class );
86728671 assertThat (topN .limit ().fold (FoldContext .small ()), equalTo (10 ));
8673- var limit = as (topN .child (), Limit .class );
8674- var filter = as (limit .child (), Filter .class );
8675- var knn = as (filter .condition (), Knn .class );
8676- assertThat (knn .k (), equalTo (20 ));
8672+ var filter = as (topN .child (), Filter .class );
8673+ var firstAnd = as (filter .condition (), And .class );
8674+ var fistKnn = as (firstAnd .right (), Knn .class );
8675+ assertThat (((Literal ) fistKnn .query ()).value (), is (List .of (1.0f , 2.0f , 3.0f )));
8676+ var secondAnd = as (firstAnd .left (), And .class );
8677+ var secondKnn = as (secondAnd .left (), Knn .class );
8678+ assertThat (((Literal ) secondKnn .query ()).value (), is (List .of (0.0f , 1.0f , 2.0f )));
86778679 }
86788680
86798681 private LogicalPlanOptimizer getCustomRulesLogicalPlanOptimizer (List <RuleExecutor .Batch <LogicalPlan >> batches ) {
0 commit comments