Decision
Implement. The PreparedStatement API in arrow-flight v56 is clean and self-contained. The implementation fits naturally alongside the existing query path, adding
real value (server-side query plan caching, early syntax checking, repeated execution without re-parsing) without distorting the existing design.
The one architectural change required — lifting FlightSqlClientHandle.client from Mutex to Arc<Mutex> — is minimal and non-breaking. It allows the prepared
statement resource to hold a cheap arc clone of the original channel for its DoGet call after execute() returns a FlightInfo.
Parameter binding is deferred to v0.6.0.
Decision
Implement. The PreparedStatement API in arrow-flight v56 is clean and self-contained. The implementation fits naturally alongside the existing query path, adding
real value (server-side query plan caching, early syntax checking, repeated execution without re-parsing) without distorting the existing design.
The one architectural change required — lifting FlightSqlClientHandle.client from Mutex to Arc<Mutex> — is minimal and non-breaking. It allows the prepared
statement resource to hold a cheap arc clone of the original channel for its DoGet call after execute() returns a FlightInfo.
Parameter binding is deferred to v0.6.0.