@@ -106,6 +106,8 @@ pub struct UserFunctionArguments {
106
106
arg_types : Vec < String > ,
107
107
#[ serde( skip_serializing_if = "std::option::Option::is_none" ) ]
108
108
return_type : Option < String > ,
109
+ #[ serde( skip_serializing_if = "std::option::Option::is_none" ) ]
110
+ server : Option < String > ,
109
111
#[ serde( skip_serializing_if = "std::vec::Vec::is_empty" ) ]
110
112
parameters : Vec < String > ,
111
113
#[ serde( skip_serializing_if = "std::collections::BTreeMap::is_empty" ) ]
@@ -118,6 +120,7 @@ pub struct UserFunction {
118
120
is_aggregate : bool ,
119
121
description : String ,
120
122
language : String ,
123
+ category : String ,
121
124
definition : String ,
122
125
created_on : DateTime < Utc > ,
123
126
arguments : UserFunctionArguments ,
@@ -162,43 +165,39 @@ impl UserFunctionsTable {
162
165
. into_iter ( )
163
166
. map ( |user_function| UserFunction {
164
167
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 ( ) ,
170
169
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 ( ) ,
177
172
definition : user_function. definition . to_string ( ) ,
178
173
created_on : user_function. created_on ,
179
174
arguments : match & user_function. definition {
180
175
UDFDefinition :: LambdaUDF ( x) => UserFunctionArguments {
181
- return_type : None ,
182
176
arg_types : vec ! [ ] ,
177
+ return_type : None ,
178
+ server : None ,
183
179
parameters : x. parameters . clone ( ) ,
184
180
states : BTreeMap :: new ( ) ,
185
181
} ,
186
182
UDFDefinition :: UDFServer ( x) => UserFunctionArguments {
187
- parameters : vec ! [ ] ,
188
- return_type : Some ( x. return_type . to_string ( ) ) ,
189
183
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 ! [ ] ,
190
187
states : BTreeMap :: new ( ) ,
191
188
} ,
192
189
UDFDefinition :: UDFScript ( x) => UserFunctionArguments {
193
- parameters : vec ! [ ] ,
194
- return_type : Some ( x. return_type . to_string ( ) ) ,
195
190
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 ! [ ] ,
196
194
states : BTreeMap :: new ( ) ,
197
195
} ,
198
196
UDFDefinition :: UDAFScript ( x) => UserFunctionArguments {
199
- parameters : vec ! [ ] ,
200
- return_type : Some ( x. return_type . to_string ( ) ) ,
201
197
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 ! [ ] ,
202
201
states : x
203
202
. state_fields
204
203
. iter ( )
0 commit comments