shivarajugowda opened a new issue, #49584:
URL: https://github.com/apache/arrow/issues/49584
### Describe the enhancement requested
### Summary
The Flight SQL JDBC driver (flight-sql-jdbc-driver) currently exposes
FlightInfo.app_metadata via
ArrowFlightJdbcFlightStreamResultSet.getAppMetadata() (added in ~15.0), but
per-batch app_metadata from FlightStream.getLatestMetadata() is received
internally and silently discarded — it is never surfaced to JDBC callers.
### Motivation
Servers use per-batch app_metadata on FlightData messages to communicate
execution statistics (rows scanned, elapsed time, query state, etc.) — similar
to what Trino exposes via QueryStats. This is particularly valuable for the
final batch, which servers commonly use as a "trailing metadata" pattern to
report post-execution stats.
Currently there is no way to access this information through the JDBC layer
without dropping down to the raw FlightClient, which defeats the purpose of the
JDBC driver abstraction.
### Current behavior
FlightInfo.app_metadata → accessible via
rs.unwrap(ArrowFlightJdbcFlightStreamResultSet.class).getAppMetadata() ✅
Per-batch FlightData.app_metadata → received by
FlightStream.getLatestMetadata() internally, but never stored or exposed ❌
**Also worth noting**: getAppMetadata() returns a snapshot from query
submission time only. For long-running queries using PollFlightInfo, updated
app_metadata from subsequent poll cycles is never surfaced. This limits its
usefulness for engines that progressively update stats during execution.
### Requested change
Add a method to ArrowFlightJdbcFlightStreamResultSet (accessible via
unwrap()) such as:
javapublic ArrowBuf getLatestBatchMetadata() {
if (currentEndpointData == null || currentEndpointData.getStream() ==
null) {
return null;
}
return currentEndpointData.getStream().getLatestMetadata();
}
This would follow the same unwrap() pattern already established for
getAppMetadata() and give callers access to per-batch metadata, including
trailing stats on the final batch.
### Component(s)
FlightRPC, Java
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]