shivarajugowda opened a new issue, #1100:
URL: https://github.com/apache/arrow-java/issues/1100
### Describe the enhancement requested
Please expose Arrow `Struct` columns as JDBC `STRUCT` metadata in the Flight
SQL JDBC driver.
Today, Arrow `Struct` is mapped to `java.sql.Types.JAVA_OBJECT`, which
makes
`ResultSetMetaData` report:
- `getColumnType(...) == Types.JAVA_OBJECT`
- `getColumnTypeName(...) == "JAVA_OBJECT"`
This hides the fact that the column is structurally a JDBC `STRUCT`, even
though the driver
already has struct-specific accessor support.
## Why this matters
JDBC clients often rely on `ResultSetMetaData` to understand result
schemas before reading
rows. When `STRUCT` columns are reported as `JAVA_OBJECT`, clients cannot
distinguish:
- struct/object-like columns
- generic opaque objects
This makes schema inspection, BI tooling, ORM adapters, and generic JDBC
consumers harder.
## Current upstream evidence
In
`flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/SqlTypes.java`:
- `ArrowType.Struct` maps to `Types.JAVA_OBJECT`
In
`flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/comple
x/ArrowFlightJdbcStructVectorAccessor.java`:
- `getStruct()` is already implemented
- but `getObjectClass()` returns `Map.class`
- `getObject()` returns a `Map`
So the data path knows about structs, but metadata does not expose them
as JDBC `STRUCT`.
## Expected behavior
For Arrow `Struct` columns:
- `ResultSetMetaData.getColumnType(...)` should return
`java.sql.Types.STRUCT`
- `ResultSetMetaData.getColumnTypeName(...)` should return `STRUCT`
Optionally, `getObject()` / object-class behavior could also be aligned
with JDBC `Struct`, but
the most important gap is metadata.
## Actual behavior
Arrow `Struct` columns are exposed as:
- `Types.JAVA_OBJECT`
- `"JAVA_OBJECT"`
## Version
Observed with:
- Arrow Flight SQL JDBC driver `18.2.0`
Confirmed in current upstream code and latest published artifact line:
- `19.0.0`
--
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]