Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Java][FlightRPC] Flight SQL JDBC driver does not expose per-batch app_metadata from FlightStream

Aperta
#1,089 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
75/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
java, sql
Ambito
api, database

Direzione di ricerca

Inizia da ArrowFlightJdbcFlightStreamResultSet e dal suo metodo getAppMetadata() esistente, quindi segui currentEndpointData e FlightStream.getLatestMetadata(). Il lavoro è completato quando i chiamanti JDBC possono usare unwrap() per recuperare i metadati più recenti di ogni batch, inclusi i metadati finali dell’ultimo batch, senza accedere al FlightClient grezzo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Type: enhancement
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:

public 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

Lingua principale
Java
Stelle
95
Fork
154
Merge medio
2g 10h
PR unite (30g)
11

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/arrow-java

Tutte le issue di apache/arrow-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.