diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreFactory.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreFactory.java index 070e30367e77..5ba1a1558987 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreFactory.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreFactory.java @@ -21,6 +21,11 @@ public interface HiveMetastoreFactory { + default boolean hasBuiltInCaching() + { + return false; + } + boolean isImpersonationEnabled(); /** diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/cache/SharedHiveMetastoreCache.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/cache/SharedHiveMetastoreCache.java index 44afddb67082..d200fbd0cdbd 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/cache/SharedHiveMetastoreCache.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/cache/SharedHiveMetastoreCache.java @@ -119,7 +119,7 @@ public boolean isEnabled() public HiveMetastoreFactory createCachingHiveMetastoreFactory(HiveMetastoreFactory metastoreFactory) { - if (!enabled) { + if (!enabled || metastoreFactory.hasBuiltInCaching()) { return metastoreFactory; } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueHiveMetastoreFactory.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueHiveMetastoreFactory.java index 6e37d604852d..6930ec2a5a3d 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueHiveMetastoreFactory.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/GlueHiveMetastoreFactory.java @@ -34,6 +34,12 @@ public GlueHiveMetastoreFactory(GlueHiveMetastore metastore, Tracer tracer) this.metastore = new TracingHiveMetastore(tracer, metastore); } + @Override + public boolean hasBuiltInCaching() + { + return true; + } + @Override public boolean isImpersonationEnabled() {