diff --git a/.metals/index.mbt b/.metals/index.mbt new file mode 100644 index 000000000..f519ebf5c Binary files /dev/null and b/.metals/index.mbt differ diff --git a/.metals/lib/java-header-compiler.jar b/.metals/lib/java-header-compiler.jar new file mode 100644 index 000000000..254de43ca Binary files /dev/null and b/.metals/lib/java-header-compiler.jar differ diff --git a/.metals/metals.lock.db b/.metals/metals.lock.db new file mode 100644 index 000000000..cc5744ae9 --- /dev/null +++ b/.metals/metals.lock.db @@ -0,0 +1,6 @@ +#FileLock +#Mon Nov 24 05:40:50 UTC 2025 +server=localhost\:35435 +hostName=localhost +method=file +id=19ab4610c5198cfeb03e946dc3b7631a8f0e8d9f478 diff --git a/.metals/metals.mv.db b/.metals/metals.mv.db new file mode 100644 index 000000000..0e60f527c Binary files /dev/null and b/.metals/metals.mv.db differ diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 266903ab8..016803016 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -7,6 +7,6 @@ ### Updated ### Fixed - +- Fixed: Thrift Responses involving complex data types now have detailed nested type information. --- *Note: When making changes, please add your change under the appropriate section with a brief description.* diff --git a/src/main/java/com/databricks/jdbc/api/impl/DatabricksResultSetMetaData.java b/src/main/java/com/databricks/jdbc/api/impl/DatabricksResultSetMetaData.java index 8486c8829..960ba85ac 100644 --- a/src/main/java/com/databricks/jdbc/api/impl/DatabricksResultSetMetaData.java +++ b/src/main/java/com/databricks/jdbc/api/impl/DatabricksResultSetMetaData.java @@ -192,6 +192,14 @@ public DatabricksResultSetMetaData( int precision = precisionAndScale[0]; int scale = precisionAndScale[1]; + // Use arrowMetadata for type text if available, as it contains full type information + String columnTypeText = + (arrowMetadata != null + && columnIndex < arrowMetadata.size() + && arrowMetadata.get(columnIndex) != null) + ? arrowMetadata.get(columnIndex) + : getTypeTextFromTypeDesc(columnDesc.getTypeDesc()); + ImmutableDatabricksColumn.Builder columnBuilder = getColumnBuilder(); // Use arrowMetadata for type text if available, as it contains full type information // like "ARRAY" whereas TTypeDesc only has primitive "ARRAY_TYPE"