@@ -23,6 +23,7 @@ use arrow_flight::flight_service_client::FlightServiceClient;
2323use arrow_flight:: FlightDescriptor ;
2424use arrow_select:: concat:: concat_batches;
2525use databend_common_base:: headers:: HEADER_FUNCTION ;
26+ use databend_common_base:: headers:: HEADER_FUNCTION_HANDLER ;
2627use databend_common_base:: headers:: HEADER_QUERY_ID ;
2728use databend_common_base:: headers:: HEADER_TENANT ;
2829use databend_common_base:: version:: DATABEND_SEMVER ;
@@ -120,43 +121,38 @@ impl UDFFlightClient {
120121 } )
121122 }
122123
123- /// Set tenant for the UDF client.
124- pub fn with_tenant ( mut self , tenant : & str ) -> Result < Self > {
125- let key = HEADER_TENANT . to_lowercase ( ) ;
126- let key = MetadataKey :: from_str ( key. as_str ( ) ) . map_err ( |err| {
127- ErrorCode :: UDFDataError ( format ! ( "Parse tenant header key error: {err}" ) )
128- } ) ?;
129- let value = MetadataValue :: from_str ( tenant) . map_err ( |err| {
130- ErrorCode :: UDFDataError ( format ! ( "Parse tenant header value error: {err}" ) )
131- } ) ?;
132- self . headers . insert ( key, value) ;
124+ pub fn with_headers < ' a , H : IntoIterator < Item = ( & ' a str , & ' a str ) > > (
125+ mut self ,
126+ headers : H ,
127+ ) -> Result < Self > {
128+ for ( key, value) in headers. into_iter ( ) {
129+ let key = MetadataKey :: from_str ( key)
130+ . map_err ( |err| ErrorCode :: UDFDataError ( format ! ( "Parse key {key} error: {err}" ) ) ) ?;
131+ let value = MetadataValue :: from_str ( value) . map_err ( |err| {
132+ ErrorCode :: UDFDataError ( format ! ( "Parse value {value} error: {err}" ) )
133+ } ) ?;
134+ self . headers . insert ( key, value) ;
135+ }
133136 Ok ( self )
134137 }
135138
139+ /// Set tenant for the UDF client.
140+ pub fn with_tenant ( self , tenant : & str ) -> Result < Self > {
141+ self . with_headers ( [ ( HEADER_TENANT , tenant) ] )
142+ }
143+
136144 /// Set function name for the UDF client.
137- pub fn with_func_name ( mut self , func_name : & str ) -> Result < Self > {
138- let key = HEADER_FUNCTION . to_lowercase ( ) ;
139- let key = MetadataKey :: from_str ( key. as_str ( ) ) . map_err ( |err| {
140- ErrorCode :: UDFDataError ( format ! ( "Parse function name header key error: {err}" ) )
141- } ) ?;
142- let value = MetadataValue :: from_str ( func_name) . map_err ( |err| {
143- ErrorCode :: UDFDataError ( format ! ( "Parse function name header value error: {err}" ) )
144- } ) ?;
145- self . headers . insert ( key, value) ;
146- Ok ( self )
145+ pub fn with_func_name ( self , func_name : & str ) -> Result < Self > {
146+ self . with_headers ( [ ( HEADER_FUNCTION , func_name) ] )
147+ }
148+
149+ pub fn with_handler_name ( self , handler_name : & str ) -> Result < Self > {
150+ self . with_headers ( [ ( HEADER_FUNCTION_HANDLER , handler_name) ] )
147151 }
148152
149153 /// Set query id for the UDF client.
150- pub fn with_query_id ( mut self , query_id : & str ) -> Result < Self > {
151- let key = HEADER_QUERY_ID . to_lowercase ( ) ;
152- let key = MetadataKey :: from_str ( key. as_str ( ) ) . map_err ( |err| {
153- ErrorCode :: UDFDataError ( format ! ( "Parse query id header key error: {err}" ) )
154- } ) ?;
155- let value = MetadataValue :: from_str ( query_id) . map_err ( |err| {
156- ErrorCode :: UDFDataError ( format ! ( "Parse query id header value error: {err}" ) )
157- } ) ?;
158- self . headers . insert ( key, value) ;
159- Ok ( self )
154+ pub fn with_query_id ( self , query_id : & str ) -> Result < Self > {
155+ self . with_headers ( [ ( HEADER_QUERY_ID , query_id) ] )
160156 }
161157
162158 fn make_request < T > ( & self , t : T ) -> Request < T > {
0 commit comments