alberttwong opened a new issue, #1382:
URL: https://github.com/apache/arrow-java/issues/1382

   ### Describe the enhancement requested
   
   Please implement Flight SQL JDBC DatabaseMetaData.getTypeInfo() using the 
server's GetXdbcTypeInfo endpoint.
   
   ### Observed behavior
   
   With arrow-flight-sql-jdbc 19.0.0, DatabaseMetaData.getTypeInfo() returns an 
empty ResultSet against our Redis Flight SQL server, while a direct Go Flight 
SQL GetXdbcTypeInfo call returns the server's canonical scalar type metadata. 
This is a client metadata capability gap, independent of query result schemas 
or GetTables.
   
   Our October 20, 2026 smoke test records the empty JDBC result explicitly:
   
https://github.com/alberttwong/redis-apache-arrow-flight/blob/72db508ed1c6c7fc3321bb874ea52898cca3966f/examples/jdbc/JdbcSmoke.java
   
   Server implementation and direct protocol tests in that same revision:
   - server/typeinfo.go
   - server/capabilities_test.go (TestFlightTypeInfo and 
TestIntegrationTypeInfoDDL)
   
   Compatibility notes:
   
https://github.com/alberttwong/redis-apache-arrow-flight/blob/72db508ed1c6c7fc3321bb874ea52898cca3966f/docs/client-compatibility.md
   
   Environment: JDBC 19.0.0, Temurin Java 25 for the local client, Arrow Go 
18.8.0 server, Redis 8.6.2. This report uses the preserved integration result; 
no new live reproduction was run while filing it. GitHub's latest Arrow Java 
release was v19.0.0 when checked, and current main's ArrowFlightMetaImpl 
extends Avatica MetaImpl without a getTypeInfo override.
   
   ### Minimal client check
   
   Against a Flight SQL server that implements GetXdbcTypeInfo and returns a 
nonempty supported type list:
   
   ```java
   try (Connection c = DriverManager.getConnection(url);
        ResultSet types = c.getMetaData().getTypeInfo()) {
     int count = 0;
     while (types.next()) {
       System.out.println(types.getString("TYPE_NAME") + " / " + 
types.getInt("DATA_TYPE"));
       count++;
     }
     System.out.println("type rows: " + count);
   }
   ```
   
   Observed: zero rows. Direct protocol check against the same server: nonempty 
standard-schema type rows.
   
   ### Requested behavior
   
   - Forward JDBC type discovery to Flight SQL GetXdbcTypeInfo and map the 
standard Flight SQL fields to the JDBC ResultSet contract.
   - Preserve nullability and ordering as required by JDBC; do not fabricate 
precision/scale values when unknown.
   - Add coverage for a nonempty type list, optional NULL metadata, an empty 
list and unsupported/error responses.
   - Keep resource cleanup and server errors visible.
   
   This would let JDBC applications discover the types the server supports. It 
does not establish general DBeaver/Tableau compatibility. If there is already a 
supported path or an existing tracker, please point us to it. Searches for 
getTypeInfo and type information did not locate a matching issue/PR; #180 
concerns GetTables/GetSchemas field naming instead.
   


-- 
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]

Reply via email to