@@ -106,6 +106,8 @@ pub struct UserFunctionArguments {
106106 arg_types : Vec < String > ,
107107 #[ serde( skip_serializing_if = "std::option::Option::is_none" ) ]
108108 return_type : Option < String > ,
109+ #[ serde( skip_serializing_if = "std::option::Option::is_none" ) ]
110+ server : Option < String > ,
109111 #[ serde( skip_serializing_if = "std::vec::Vec::is_empty" ) ]
110112 parameters : Vec < String > ,
111113 #[ serde( skip_serializing_if = "std::collections::BTreeMap::is_empty" ) ]
@@ -118,6 +120,7 @@ pub struct UserFunction {
118120 is_aggregate : bool ,
119121 description : String ,
120122 language : String ,
123+ category : String ,
121124 definition : String ,
122125 created_on : DateTime < Utc > ,
123126 arguments : UserFunctionArguments ,
@@ -162,43 +165,39 @@ impl UserFunctionsTable {
162165 . into_iter ( )
163166 . map ( |user_function| UserFunction {
164167 name : user_function. name ,
165- is_aggregate : match user_function. definition {
166- UDFDefinition :: LambdaUDF ( _) => false ,
167- UDFDefinition :: UDFServer ( _) | UDFDefinition :: UDFScript ( _) => false ,
168- UDFDefinition :: UDAFScript ( _) => true ,
169- } ,
168+ is_aggregate : user_function. definition . is_aggregate ( ) ,
170169 description : user_function. description ,
171- language : match & user_function. definition {
172- UDFDefinition :: LambdaUDF ( _) => String :: from ( "SQL" ) ,
173- UDFDefinition :: UDFServer ( x) => x. language . clone ( ) ,
174- UDFDefinition :: UDFScript ( x) => x. language . to_string ( ) ,
175- UDFDefinition :: UDAFScript ( x) => x. language . to_string ( ) ,
176- } ,
170+ language : user_function. definition . language ( ) . to_string ( ) ,
171+ category : user_function. definition . category ( ) . to_string ( ) ,
177172 definition : user_function. definition . to_string ( ) ,
178173 created_on : user_function. created_on ,
179174 arguments : match & user_function. definition {
180175 UDFDefinition :: LambdaUDF ( x) => UserFunctionArguments {
181- return_type : None ,
182176 arg_types : vec ! [ ] ,
177+ return_type : None ,
178+ server : None ,
183179 parameters : x. parameters . clone ( ) ,
184180 states : BTreeMap :: new ( ) ,
185181 } ,
186182 UDFDefinition :: UDFServer ( x) => UserFunctionArguments {
187- parameters : vec ! [ ] ,
188- return_type : Some ( x. return_type . to_string ( ) ) ,
189183 arg_types : x. arg_types . iter ( ) . map ( ToString :: to_string) . collect ( ) ,
184+ return_type : Some ( x. return_type . to_string ( ) ) ,
185+ server : Some ( x. address . to_string ( ) ) ,
186+ parameters : vec ! [ ] ,
190187 states : BTreeMap :: new ( ) ,
191188 } ,
192189 UDFDefinition :: UDFScript ( x) => UserFunctionArguments {
193- parameters : vec ! [ ] ,
194- return_type : Some ( x. return_type . to_string ( ) ) ,
195190 arg_types : x. arg_types . iter ( ) . map ( ToString :: to_string) . collect ( ) ,
191+ return_type : Some ( x. return_type . to_string ( ) ) ,
192+ server : None ,
193+ parameters : vec ! [ ] ,
196194 states : BTreeMap :: new ( ) ,
197195 } ,
198196 UDFDefinition :: UDAFScript ( x) => UserFunctionArguments {
199- parameters : vec ! [ ] ,
200- return_type : Some ( x. return_type . to_string ( ) ) ,
201197 arg_types : x. arg_types . iter ( ) . map ( ToString :: to_string) . collect ( ) ,
198+ return_type : Some ( x. return_type . to_string ( ) ) ,
199+ server : None ,
200+ parameters : vec ! [ ] ,
202201 states : x
203202 . state_fields
204203 . iter ( )
0 commit comments