From 98d4e734a7b138b92076ec37dff06a5d9f62f392 Mon Sep 17 00:00:00 2001 From: Gabriel Escobar Date: Tue, 12 Apr 2022 15:47:30 -0300 Subject: [PATCH] Test if type is null --- .../org/apache/arrow/driver/jdbc/ArrowDatabaseMetadata.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/flight/flight-jdbc-driver/src/main/java/org/apache/arrow/driver/jdbc/ArrowDatabaseMetadata.java b/java/flight/flight-jdbc-driver/src/main/java/org/apache/arrow/driver/jdbc/ArrowDatabaseMetadata.java index f618b0fde18d5..da2b0b00edaef 100644 --- a/java/flight/flight-jdbc-driver/src/main/java/org/apache/arrow/driver/jdbc/ArrowDatabaseMetadata.java +++ b/java/flight/flight-jdbc-driver/src/main/java/org/apache/arrow/driver/jdbc/ArrowDatabaseMetadata.java @@ -1037,8 +1037,10 @@ private int setGetColumnsVectorSchemaRootFromFields(final VectorSchemaRoot curre } dataTypeVector.setSafe(insertIndex, SqlTypes.getSqlTypeIdFromArrowType(fieldType)); - typeNameVector.setSafe(insertIndex, - columnMetadata.getTypeName().getBytes(StandardCharsets.UTF_8)); + byte[] typeName = columnMetadata.getTypeName() != null ? + columnMetadata.getTypeName().getBytes(CHARSET) : + SqlTypes.getSqlTypeNameFromArrowType(fieldType).getBytes(CHARSET); + typeNameVector.setSafe(insertIndex, typeName); // We're not setting COLUMN_SIZE for ROWID SQL Types, as there's no such Arrow type. // We're not setting COLUMN_SIZE nor DECIMAL_DIGITS for Float/Double as their precision and scale are variable.