table_function_flight_info Action

This table_function_flight_info action is used to determine the schema of a table function supplied by an Arrow Flight Server. Since table functions can be dynamic based on their paraemters, this action is called with the parameters passed to the table function.

Input Parameters

There is a single msgpack encoded parameter passed to the action.

struct AirportTableFunctionFlightInfoParameters
{
  std::string catalog;
  std::string schema_name;
  std::string action_name;
  std::string parameters;
  std::string table_input_schema;

  // Specify the point in time information if not specified
  // these fields are empty strings.
  std::string at_unit;
  std::string at_value;


  MSGPACK_DEFINE_MAP(catalog, schema_name, action_name, parameters, table_input_schema, at_unit, at_value)
};

The parameters field contains a serialized Arrow Record Batch with the parameter values. The field names of the record batch are the same as defined by the input schema of the function.

Output Result

The table_function_flight_info is expected to return a single serialized Arrow FlightInfo structure, that will then be used to retrieve the data. The custom action of `table_function_flight_info is used because it allows additional data to be serialized compared with the GetFlightInfo Arrow RPC method.