According to the Arrow Flight protocol definition, a client(consumer) can let the server generate a flight stream through a specified descriptor in GetFlightInfo. And the flight stream will be available for the duration defined by the server(a flight service).
But it seems that there is no rpc message that 'releases' the flight stream that GetFlightInfo generated.
Since the client has no standard way to know or control the duration of the flight stream availability, it is impossible to implement a reliable client application.
And since the server has no standard way to know when the client is done with the flight stream, it is impossible to implement efficient flight stream management.
Of course, the duration can be published and the method can be implemented in a non-standard way by the client and server that know each other, but a general client (like a BI application) that uses a standard wrapper - for example, Apache Arrow Flight SQL, let alone a wrapper of wrapper: Apache Arrow Flight SQL JDBC driver - is out of luck.
Is there any standard way for a client(consumer) to release the flight stream that GetFlightInfo generated? If not, why did the designers choose not to support that feature?