diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueConverter.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueConverter.java index 75b35cc44f02..03785bde62f2 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueConverter.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueConverter.java @@ -90,6 +90,7 @@ import static io.trino.metastore.Table.TABLE_COMMENT; import static io.trino.plugin.hive.HiveErrorCode.HIVE_INVALID_METADATA; import static io.trino.plugin.hive.HiveErrorCode.HIVE_UNSUPPORTED_FORMAT; +import static io.trino.plugin.hive.TableType.EXTERNAL_TABLE; import static io.trino.plugin.hive.ViewReaderUtil.isTrinoMaterializedView; import static io.trino.plugin.hive.ViewReaderUtil.isTrinoView; import static io.trino.plugin.hive.metastore.MetastoreUtil.metastoreFunctionName; @@ -119,6 +120,12 @@ final class GlueConverter private GlueConverter() {} + public static String getTableType(software.amazon.awssdk.services.glue.model.Table glueTable) + { + // Athena treats a missing table type as EXTERNAL_TABLE. + return firstNonNull(getTableTypeNullable(glueTable), EXTERNAL_TABLE.name()); + } + @Nullable @SuppressModernizer // Usage of `Table.tableType` is not allowed. Only this method can call that. public static String getTableTypeNullable(software.amazon.awssdk.services.glue.model.Table glueTable) @@ -149,8 +156,7 @@ public static DatabaseInput toGlueDatabaseInput(Database database) public static Table fromGlueTable(software.amazon.awssdk.services.glue.model.Table glueTable, String databaseName) { - // Athena treats a missing table type as EXTERNAL_TABLE. - String tableType = firstNonNull(getTableTypeNullable(glueTable), "EXTERNAL_TABLE"); + String tableType = getTableType(glueTable); Map tableParameters = glueTable.parameters(); if (glueTable.description() != null) {