@@ -83,4 +83,48 @@ void testWrongArgumentCount() {
8383 IllegalArgumentException .class , () -> builder .apply (functionProperties , expressions ));
8484 assertTrue (ex .getMessage ().contains ("requires 4 arguments" ));
8585 }
86+
87+ @ Test
88+ void testTooManyArguments () {
89+ VectorSearchTableFunctionResolver resolver =
90+ new VectorSearchTableFunctionResolver (client , settings );
91+ FunctionName functionName = FunctionName .of ("vectorsearch" );
92+ List <Expression > expressions =
93+ List .of (
94+ DSL .namedArgument ("table" , DSL .literal ("my-index" )),
95+ DSL .namedArgument ("field" , DSL .literal ("embedding" )),
96+ DSL .namedArgument ("vector" , DSL .literal ("[1.0]" )),
97+ DSL .namedArgument ("option" , DSL .literal ("k=5" )),
98+ DSL .namedArgument ("extra" , DSL .literal ("unexpected" )));
99+ FunctionSignature functionSignature =
100+ new FunctionSignature (
101+ functionName , expressions .stream ().map (Expression ::type ).collect (Collectors .toList ()));
102+
103+ Pair <FunctionSignature , FunctionBuilder > resolution = resolver .resolve (functionSignature );
104+ FunctionBuilder builder = resolution .getValue ();
105+
106+ IllegalArgumentException ex =
107+ assertThrows (
108+ IllegalArgumentException .class , () -> builder .apply (functionProperties , expressions ));
109+ assertTrue (ex .getMessage ().contains ("requires 4 arguments" ));
110+ }
111+
112+ @ Test
113+ void testZeroArguments () {
114+ VectorSearchTableFunctionResolver resolver =
115+ new VectorSearchTableFunctionResolver (client , settings );
116+ FunctionName functionName = FunctionName .of ("vectorsearch" );
117+ List <Expression > expressions = List .of ();
118+ FunctionSignature functionSignature =
119+ new FunctionSignature (
120+ functionName , expressions .stream ().map (Expression ::type ).collect (Collectors .toList ()));
121+
122+ Pair <FunctionSignature , FunctionBuilder > resolution = resolver .resolve (functionSignature );
123+ FunctionBuilder builder = resolution .getValue ();
124+
125+ IllegalArgumentException ex =
126+ assertThrows (
127+ IllegalArgumentException .class , () -> builder .apply (functionProperties , expressions ));
128+ assertTrue (ex .getMessage ().contains ("requires 4 arguments" ));
129+ }
86130}
0 commit comments