@@ -41,6 +41,12 @@ def deserialize_record_batch(cls: Any, value: Any) -> pa.RecordBatch | None:
4141 raise ValueError (f"Invalid Arrow record batch: { e } " ) from e
4242
4343
44+ def deserialize_record_batch_or_none (cls : Any , value : Any ) -> pa .RecordBatch | None :
45+ if value is None or value == b"" :
46+ return None
47+ return deserialize_record_batch (cls , value )
48+
49+
4450def deserialize_schema (cls : Any , value : Any ) -> pa .Schema :
4551 if isinstance (value , pa .Schema ):
4652 return value
@@ -192,7 +198,7 @@ class EndpointsParametersParameters(BaseModel):
192198
193199 _validate_table_function_parameters = field_validator (
194200 "table_function_parameters" , mode = "before"
195- )(deserialize_record_batch )
201+ )(deserialize_record_batch_or_none )
196202
197203
198204class EndpointsParameters (BaseModel ):
@@ -251,7 +257,7 @@ class TableFunctionFlightInfoParameters(BaseModel):
251257 model_config = ConfigDict (arbitrary_types_allowed = True ) # for Pydantic v2
252258 descriptor : flight .FlightDescriptor
253259
254- parameters : pa .RecordBatch | None
260+ parameters : pa .RecordBatch
255261 table_input_schema : pa .Schema | None
256262
257263 _validate_flight_descriptor = field_validator ("descriptor" , mode = "before" )(
0 commit comments