diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java index aaadacb543675..5b01077b17996 100644 --- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java +++ b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/Constants.java @@ -24,6 +24,7 @@ public class Constants { private Constants() {} public static final String SQL_CATALOG_NAME_KEY = "SQL_CATALOG_NAME"; + public static final String SQL_SCHEMA_NAME_KEY = "SQL_SCHEMA_NAME"; public static final String SQL_TABLE_NAME_KEY = "SQL_TABLE_NAME"; public static final String SQL_COLUMN_NAME_KEY = "SQL_COLUMN_NAME"; public static final String SQL_TYPE_KEY = "SQL_TYPE"; diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java index 93c6a80c107b9..dc79f6efff324 100644 --- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java +++ b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java @@ -253,6 +253,7 @@ public static Schema jdbcToArrowSchema(ResultSetMetaData rsmd, JdbcToArrowConfig if (config.shouldIncludeMetadata()) { metadata = new HashMap<>(); metadata.put(Constants.SQL_CATALOG_NAME_KEY, rsmd.getCatalogName(i)); + metadata.put(Constants.SQL_SCHEMA_NAME_KEY, rsmd.getSchemaName(i)); metadata.put(Constants.SQL_TABLE_NAME_KEY, rsmd.getTableName(i)); metadata.put(Constants.SQL_COLUMN_NAME_KEY, columnName); metadata.put(Constants.SQL_TYPE_KEY, rsmd.getColumnTypeName(i)); diff --git a/java/adapter/jdbc/src/test/java/org/apache/arrow/adapter/jdbc/JdbcToArrowTestHelper.java b/java/adapter/jdbc/src/test/java/org/apache/arrow/adapter/jdbc/JdbcToArrowTestHelper.java index 5d1fb2276cc67..d5f896ba7df56 100644 --- a/java/adapter/jdbc/src/test/java/org/apache/arrow/adapter/jdbc/JdbcToArrowTestHelper.java +++ b/java/adapter/jdbc/src/test/java/org/apache/arrow/adapter/jdbc/JdbcToArrowTestHelper.java @@ -324,9 +324,10 @@ public static void assertFieldMetadataMatchesResultSetMetadata(ResultSetMetaData Map metadata = fields.get(i - 1).getMetadata(); assertNotNull(metadata); - assertEquals(4, metadata.size()); + assertEquals(5, metadata.size()); assertEquals(rsmd.getCatalogName(i), metadata.get(Constants.SQL_CATALOG_NAME_KEY)); + assertEquals(rsmd.getSchemaName(i), metadata.get(Constants.SQL_SCHEMA_NAME_KEY)); assertEquals(rsmd.getTableName(i), metadata.get(Constants.SQL_TABLE_NAME_KEY)); assertEquals(rsmd.getColumnLabel(i), metadata.get(Constants.SQL_COLUMN_NAME_KEY)); assertEquals(rsmd.getColumnTypeName(i), metadata.get(Constants.SQL_TYPE_KEY)); diff --git a/java/adapter/jdbc/src/test/resources/h2/expectedSchemaWithCommentsAndJdbcMeta.json b/java/adapter/jdbc/src/test/resources/h2/expectedSchemaWithCommentsAndJdbcMeta.json index 967ce0a08e1f0..9b25d635d4bc2 100644 --- a/java/adapter/jdbc/src/test/resources/h2/expectedSchemaWithCommentsAndJdbcMeta.json +++ b/java/adapter/jdbc/src/test/resources/h2/expectedSchemaWithCommentsAndJdbcMeta.json @@ -9,11 +9,8 @@ }, "children" : [ ], "metadata" : [ { - "value" : "Record identifier", - "key" : "comment" - }, { - "value" : "TABLE1", - "key" : "SQL_TABLE_NAME" + "value" : "PUBLIC", + "key" : "SQL_SCHEMA_NAME" }, { "value" : "JDBCTOARROWTEST?CHARACTERENCODING=UTF-8", "key" : "SQL_CATALOG_NAME" @@ -23,6 +20,12 @@ }, { "value" : "BIGINT", "key" : "SQL_TYPE" + }, { + "value" : "Record identifier", + "key" : "comment" + }, { + "value" : "TABLE1", + "key" : "SQL_TABLE_NAME" } ] }, { "name" : "NAME", @@ -32,11 +35,8 @@ }, "children" : [ ], "metadata" : [ { - "value" : "Name of record", - "key" : "comment" - }, { - "value" : "TABLE1", - "key" : "SQL_TABLE_NAME" + "value" : "PUBLIC", + "key" : "SQL_SCHEMA_NAME" }, { "value" : "JDBCTOARROWTEST?CHARACTERENCODING=UTF-8", "key" : "SQL_CATALOG_NAME" @@ -46,6 +46,12 @@ }, { "value" : "VARCHAR", "key" : "SQL_TYPE" + }, { + "value" : "Name of record", + "key" : "comment" + }, { + "value" : "TABLE1", + "key" : "SQL_TABLE_NAME" } ] }, { "name" : "COLUMN1", @@ -55,6 +61,9 @@ }, "children" : [ ], "metadata" : [ { + "value" : "PUBLIC", + "key" : "SQL_SCHEMA_NAME" + }, { "value" : "TABLE1", "key" : "SQL_TABLE_NAME" }, { @@ -77,11 +86,8 @@ }, "children" : [ ], "metadata" : [ { - "value" : "Informative description of columnN", - "key" : "comment" - }, { - "value" : "TABLE1", - "key" : "SQL_TABLE_NAME" + "value" : "PUBLIC", + "key" : "SQL_SCHEMA_NAME" }, { "value" : "JDBCTOARROWTEST?CHARACTERENCODING=UTF-8", "key" : "SQL_CATALOG_NAME" @@ -91,6 +97,12 @@ }, { "value" : "INTEGER", "key" : "SQL_TYPE" + }, { + "value" : "Informative description of columnN", + "key" : "comment" + }, { + "value" : "TABLE1", + "key" : "SQL_TABLE_NAME" } ] } ], "metadata" : [ {