diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeModule.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeModule.java index 15e50d8c3173..25f376aecde5 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeModule.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeModule.java @@ -54,7 +54,6 @@ import io.trino.plugin.hive.TransactionalMetadataFactory; import io.trino.plugin.hive.fs.DirectoryLister; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.SemiTransactionalHiveMetastore; import io.trino.plugin.hive.metastore.thrift.TranslateHiveViews; import io.trino.plugin.hive.parquet.ParquetReaderConfig; @@ -93,7 +92,6 @@ public void setup(Binder binder) configBinder(binder).bindConfig(DeltaLakeConfig.class); configBinder(binder).bindConfig(HiveConfig.class); - binder.bind(MetastoreConfig.class).toInstance(new MetastoreConfig()); // currently not configurable binder.bind(Key.get(boolean.class, TranslateHiveViews.class)).toInstance(false); configBinder(binder).bindConfig(ParquetReaderConfig.class); configBinder(binder).bindConfig(ParquetWriterConfig.class); diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/metastore/DeltaLakeMetastoreModule.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/metastore/DeltaLakeMetastoreModule.java index 128a339eadc1..b4afa22e5e60 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/metastore/DeltaLakeMetastoreModule.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/metastore/DeltaLakeMetastoreModule.java @@ -14,11 +14,13 @@ package io.trino.plugin.deltalake.metastore; import com.google.inject.Binder; +import com.google.inject.Key; import com.google.inject.Module; import io.airlift.configuration.AbstractConfigurationAwareModule; import io.trino.plugin.deltalake.metastore.file.DeltaLakeFileMetastoreModule; import io.trino.plugin.deltalake.metastore.glue.DeltaLakeGlueMetastoreModule; import io.trino.plugin.deltalake.metastore.thrift.DeltaLakeThriftMetastoreModule; +import io.trino.plugin.hive.HideDeltaLakeTables; import io.trino.plugin.hive.metastore.DecoratedHiveMetastoreModule; import io.trino.plugin.hive.metastore.MetastoreTypeConfig; @@ -30,6 +32,7 @@ public class DeltaLakeMetastoreModule @Override protected void setup(Binder binder) { + binder.bind(Key.get(boolean.class, HideDeltaLakeTables.class)).toInstance(false); bindMetastoreModule("thrift", new DeltaLakeThriftMetastoreModule()); bindMetastoreModule("file", new DeltaLakeFileMetastoreModule()); bindMetastoreModule("glue", new DeltaLakeGlueMetastoreModule()); diff --git a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreAccessOperations.java b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreAccessOperations.java index 81af2a754bbd..703622973b3f 100644 --- a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreAccessOperations.java +++ b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreAccessOperations.java @@ -32,7 +32,6 @@ import io.trino.plugin.hive.metastore.CountingAccessHiveMetastore; import io.trino.plugin.hive.metastore.HiveMetastore; import io.trino.plugin.hive.metastore.HiveMetastoreFactory; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.RawHiveMetastoreFactory; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; @@ -79,7 +78,7 @@ protected DistributedQueryRunner createQueryRunner() HiveMetastore hiveMetastore = new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + false, new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreStatistics.java b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreStatistics.java index 858f53fa4d11..93e4100d9c4c 100644 --- a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreStatistics.java +++ b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/metastore/TestDeltaLakeMetastoreStatistics.java @@ -41,7 +41,6 @@ import io.trino.plugin.hive.metastore.Column; import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.PrincipalPrivileges; import io.trino.plugin.hive.metastore.Storage; import io.trino.plugin.hive.metastore.StorageFormat; @@ -123,7 +122,7 @@ public void setupMetastore() hiveMetastore = new FileHiveMetastore( new NodeVersion("test_version"), hdfsEnvironment, - new MetastoreConfig(), + false, new FileHiveMetastoreConfig() .setCatalogDirectory(metastoreDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-hive-hadoop2/src/test/java/io/trino/plugin/hive/TestHiveAlluxioMetastore.java b/plugin/trino-hive-hadoop2/src/test/java/io/trino/plugin/hive/TestHiveAlluxioMetastore.java index f796a47a4b26..891a64dfa07d 100644 --- a/plugin/trino-hive-hadoop2/src/test/java/io/trino/plugin/hive/TestHiveAlluxioMetastore.java +++ b/plugin/trino-hive-hadoop2/src/test/java/io/trino/plugin/hive/TestHiveAlluxioMetastore.java @@ -16,7 +16,7 @@ import alluxio.client.table.TableMasterClient; import alluxio.conf.PropertyKey; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.alluxio.AlluxioHiveMetastore; import io.trino.plugin.hive.metastore.alluxio.AlluxioHiveMetastoreConfig; import io.trino.plugin.hive.metastore.alluxio.AlluxioMetastoreModule; @@ -61,7 +61,7 @@ public void setup(String host, String port, int hiveVersionMajor, String timeZon alluxioConfig.setMasterAddress(this.alluxioAddress); TableMasterClient client = AlluxioMetastoreModule.createCatalogMasterClient(alluxioConfig); hdfsEnvironment = new HdfsEnvironment(createTestHdfsConfiguration(), new HdfsConfig(), new NoHdfsAuthentication()); - setup(SCHEMA, hiveConfig, new AlluxioHiveMetastore(client, new MetastoreConfig()), hdfsEnvironment); + setup(SCHEMA, hiveConfig, new AlluxioHiveMetastore(client, new HiveMetastoreConfig()), hdfsEnvironment); } private int getHiveVersionMajor() diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HideDeltaLakeTables.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HideDeltaLakeTables.java new file mode 100644 index 000000000000..0db1a6f4a7b1 --- /dev/null +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HideDeltaLakeTables.java @@ -0,0 +1,31 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.trino.plugin.hive; + +import javax.inject.Qualifier; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Retention(RUNTIME) +@Target({FIELD, PARAMETER, METHOD}) +@Qualifier +public @interface HideDeltaLakeTables +{ +} diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadataFactory.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadataFactory.java index 59d74daa8d05..5925969922df 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadataFactory.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadataFactory.java @@ -19,8 +19,8 @@ import io.trino.plugin.base.CatalogName; import io.trino.plugin.hive.fs.DirectoryLister; import io.trino.plugin.hive.fs.TransactionScopeCachingDirectoryLister; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HiveMetastoreFactory; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.SemiTransactionalHiveMetastore; import io.trino.plugin.hive.security.AccessControlMetadataFactory; import io.trino.plugin.hive.statistics.MetastoreHiveStatisticsProvider; @@ -77,7 +77,7 @@ public class HiveMetadataFactory public HiveMetadataFactory( CatalogName catalogName, HiveConfig hiveConfig, - MetastoreConfig metastoreConfig, + HiveMetastoreConfig hiveMetastoreConfig, HiveMetastoreFactory metastoreFactory, HdfsEnvironment hdfsEnvironment, HivePartitionManager partitionManager, @@ -111,7 +111,7 @@ public HiveMetadataFactory( hiveConfig.isHiveViewsRunAsInvoker(), hiveConfig.getPerTransactionMetastoreCacheMaximumSize(), hiveConfig.getHiveTransactionHeartbeatInterval(), - metastoreConfig.isHideDeltaLakeTables(), + hiveMetastoreConfig.isHideDeltaLakeTables(), typeManager, metadataProvider, locationService, diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveModule.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveModule.java index 98a8aa0ea346..697d295594c3 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveModule.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveModule.java @@ -22,7 +22,7 @@ import io.airlift.event.client.EventClient; import io.trino.plugin.base.CatalogName; import io.trino.plugin.hive.fs.CachingDirectoryLister; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.thrift.TranslateHiveViews; import io.trino.plugin.hive.orc.OrcFileWriterFactory; import io.trino.plugin.hive.orc.OrcPageSourceFactory; @@ -61,7 +61,7 @@ public class HiveModule public void configure(Binder binder) { configBinder(binder).bindConfig(HiveConfig.class); - configBinder(binder).bindConfig(MetastoreConfig.class); + configBinder(binder).bindConfig(HiveMetastoreConfig.class); binder.bind(HiveSessionProperties.class).in(Scopes.SINGLETON); binder.bind(HiveTableProperties.class).in(Scopes.SINGLETON); diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreConfig.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreConfig.java similarity index 89% rename from plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreConfig.java rename to plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreConfig.java index a3e3da8ef06a..47af49732558 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/MetastoreConfig.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreConfig.java @@ -16,7 +16,7 @@ import io.airlift.configuration.Config; import io.airlift.configuration.ConfigDescription; -public class MetastoreConfig +public class HiveMetastoreConfig { private boolean hideDeltaLakeTables; @@ -27,7 +27,7 @@ public boolean isHideDeltaLakeTables() @Config("hive.hide-delta-lake-tables") @ConfigDescription("Hide Delta Lake tables in table listings") - public MetastoreConfig setHideDeltaLakeTables(boolean hideDeltaLakeTables) + public HiveMetastoreConfig setHideDeltaLakeTables(boolean hideDeltaLakeTables) { this.hideDeltaLakeTables = hideDeltaLakeTables; return this; diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreModule.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreModule.java index ee5aaf6a9566..c8b58145f16c 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreModule.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/HiveMetastoreModule.java @@ -15,7 +15,10 @@ import com.google.inject.Binder; import com.google.inject.Module; +import com.google.inject.Provides; +import com.google.inject.Singleton; import io.airlift.configuration.AbstractConfigurationAwareModule; +import io.trino.plugin.hive.HideDeltaLakeTables; import io.trino.plugin.hive.metastore.file.FileMetastoreModule; import io.trino.plugin.hive.metastore.glue.GlueMetastoreModule; import io.trino.plugin.hive.metastore.thrift.ThriftMetastoreModule; @@ -80,4 +83,12 @@ protected void setup(Binder binder) } }; } + + @HideDeltaLakeTables + @Singleton + @Provides + public boolean hideDeltaLakeTables(HiveMetastoreConfig hiveMetastoreConfig) + { + return hiveMetastoreConfig.isHideDeltaLakeTables(); + } } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastore.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastore.java index 625f6aa3b61b..8f7d8aba22d0 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastore.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastore.java @@ -29,10 +29,10 @@ import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveColumnStatistics; import io.trino.plugin.hive.metastore.HiveMetastore; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HivePrincipal; import io.trino.plugin.hive.metastore.HivePrivilegeInfo; import io.trino.plugin.hive.metastore.HivePrivilegeInfo.HivePrivilege; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.Partition; import io.trino.plugin.hive.metastore.PartitionWithStatistics; import io.trino.plugin.hive.metastore.PrincipalPrivileges; @@ -71,11 +71,11 @@ public class AlluxioHiveMetastore { private final TableMasterClient client; - public AlluxioHiveMetastore(TableMasterClient client, MetastoreConfig metastoreConfig) + public AlluxioHiveMetastore(TableMasterClient client, HiveMetastoreConfig hiveMetastoreConfig) { this.client = requireNonNull(client, "client is null"); - requireNonNull(metastoreConfig, "metastoreConfig is null"); - checkArgument(!metastoreConfig.isHideDeltaLakeTables(), "Hiding Delta Lake tables is not supported"); // TODO + requireNonNull(hiveMetastoreConfig, "hiveMetastoreConfig is null"); + checkArgument(!hiveMetastoreConfig.isHideDeltaLakeTables(), "Hiding Delta Lake tables is not supported"); // TODO } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastoreFactory.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastoreFactory.java index fdb315d7b2aa..8737945d4568 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastoreFactory.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/alluxio/AlluxioHiveMetastoreFactory.java @@ -15,8 +15,8 @@ import alluxio.client.table.TableMasterClient; import io.trino.plugin.hive.metastore.HiveMetastore; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HiveMetastoreFactory; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.spi.security.ConnectorIdentity; import javax.inject.Inject; @@ -29,10 +29,10 @@ public class AlluxioHiveMetastoreFactory private final AlluxioHiveMetastore metastore; @Inject - public AlluxioHiveMetastoreFactory(TableMasterClient client, MetastoreConfig metastoreConfig) + public AlluxioHiveMetastoreFactory(TableMasterClient client, HiveMetastoreConfig hiveMetastoreConfig) { // Alluxio metastore does not support impersonation, so just create a single shared instance - metastore = new AlluxioHiveMetastore(client, metastoreConfig); + metastore = new AlluxioHiveMetastore(client, hiveMetastoreConfig); } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastore.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastore.java index fbd63b7b2c55..3026720e5be8 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastore.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastore.java @@ -40,10 +40,10 @@ import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveColumnStatistics; import io.trino.plugin.hive.metastore.HiveMetastore; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HivePrincipal; import io.trino.plugin.hive.metastore.HivePrivilegeInfo; import io.trino.plugin.hive.metastore.HivePrivilegeInfo.HivePrivilege; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.Partition; import io.trino.plugin.hive.metastore.PartitionWithStatistics; import io.trino.plugin.hive.metastore.PrincipalPrivileges; @@ -165,13 +165,13 @@ public static FileHiveMetastore createTestingFileHiveMetastore(File catalogDirec return new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(catalogDirectory.toURI().toString()) .setMetastoreUser("test")); } - public FileHiveMetastore(NodeVersion nodeVersion, HdfsEnvironment hdfsEnvironment, MetastoreConfig metastoreConfig, FileHiveMetastoreConfig config) + public FileHiveMetastore(NodeVersion nodeVersion, HdfsEnvironment hdfsEnvironment, boolean hideDeltaLakeTables, FileHiveMetastoreConfig config) { this.currentVersion = requireNonNull(nodeVersion, "nodeVersion is null").toString(); requireNonNull(config, "config is null"); @@ -179,7 +179,7 @@ public FileHiveMetastore(NodeVersion nodeVersion, HdfsEnvironment hdfsEnvironmen this.hdfsEnvironment = requireNonNull(hdfsEnvironment, "hdfsEnvironment is null"); this.catalogDirectory = new Path(requireNonNull(config.getCatalogDirectory(), "catalogDirectory is null")); this.hdfsContext = new HdfsContext(ConnectorIdentity.ofUser(config.getMetastoreUser())); - this.hideDeltaLakeTables = requireNonNull(metastoreConfig, "metastoreConfig is null").isHideDeltaLakeTables(); + this.hideDeltaLakeTables = hideDeltaLakeTables; try { metadataFileSystem = hdfsEnvironment.getFileSystem(hdfsContext, this.catalogDirectory); } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastoreFactory.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastoreFactory.java index 235d2e84d482..56ce940a2b4a 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastoreFactory.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/file/FileHiveMetastoreFactory.java @@ -14,10 +14,10 @@ package io.trino.plugin.hive.metastore.file; import io.trino.plugin.hive.HdfsEnvironment; +import io.trino.plugin.hive.HideDeltaLakeTables; import io.trino.plugin.hive.NodeVersion; import io.trino.plugin.hive.metastore.HiveMetastore; import io.trino.plugin.hive.metastore.HiveMetastoreFactory; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.spi.security.ConnectorIdentity; import javax.inject.Inject; @@ -30,10 +30,10 @@ public class FileHiveMetastoreFactory private final FileHiveMetastore metastore; @Inject - public FileHiveMetastoreFactory(NodeVersion nodeVersion, HdfsEnvironment hdfsEnvironment, MetastoreConfig metastoreConfig, FileHiveMetastoreConfig config) + public FileHiveMetastoreFactory(NodeVersion nodeVersion, HdfsEnvironment hdfsEnvironment, @HideDeltaLakeTables boolean hideDeltaLakeTables, FileHiveMetastoreConfig config) { // file metastore does not support impersonation, so just create a single shared instance - metastore = new FileHiveMetastore(nodeVersion, hdfsEnvironment, metastoreConfig, config); + metastore = new FileHiveMetastore(nodeVersion, hdfsEnvironment, hideDeltaLakeTables, config); } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueMetastoreTableFilterProvider.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueMetastoreTableFilterProvider.java index 950b5a4558c3..63ef87298ec3 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueMetastoreTableFilterProvider.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/glue/DefaultGlueMetastoreTableFilterProvider.java @@ -14,7 +14,7 @@ package io.trino.plugin.hive.metastore.glue; import com.amazonaws.services.glue.model.Table; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.HideDeltaLakeTables; import javax.inject.Inject; import javax.inject.Provider; @@ -25,7 +25,6 @@ import static com.google.common.base.MoreObjects.firstNonNull; import static io.trino.plugin.hive.util.HiveUtil.DELTA_LAKE_PROVIDER; import static io.trino.plugin.hive.util.HiveUtil.SPARK_TABLE_PROVIDER_KEY; -import static java.util.Objects.requireNonNull; import static java.util.function.Predicate.not; public class DefaultGlueMetastoreTableFilterProvider @@ -34,10 +33,9 @@ public class DefaultGlueMetastoreTableFilterProvider private final boolean hideDeltaLakeTables; @Inject - public DefaultGlueMetastoreTableFilterProvider(MetastoreConfig metastoreConfig) + public DefaultGlueMetastoreTableFilterProvider(@HideDeltaLakeTables boolean hideDeltaLakeTables) { - requireNonNull(metastoreConfig, "metastoreConfig is null"); - this.hideDeltaLakeTables = metastoreConfig.isHideDeltaLakeTables(); + this.hideDeltaLakeTables = hideDeltaLakeTables; } @Override diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftHiveMetastore.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftHiveMetastore.java index be9730c9ff63..fa2ec5fd8398 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftHiveMetastore.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/metastore/thrift/ThriftHiveMetastore.java @@ -24,6 +24,7 @@ import io.trino.collect.cache.NonEvictableLoadingCache; import io.trino.plugin.hive.HdfsEnvironment; import io.trino.plugin.hive.HdfsEnvironment.HdfsContext; +import io.trino.plugin.hive.HideDeltaLakeTables; import io.trino.plugin.hive.HiveBasicStatistics; import io.trino.plugin.hive.HivePartition; import io.trino.plugin.hive.HiveType; @@ -40,7 +41,6 @@ import io.trino.plugin.hive.metastore.HivePrincipal; import io.trino.plugin.hive.metastore.HivePrivilegeInfo; import io.trino.plugin.hive.metastore.HivePrivilegeInfo.HivePrivilege; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.PartitionWithStatistics; import io.trino.plugin.hive.metastore.thrift.ThriftMetastoreAuthenticationConfig.ThriftMetastoreAuthenticationType; import io.trino.plugin.hive.util.RetryDriver; @@ -196,7 +196,7 @@ public class ThriftHiveMetastore @Inject public ThriftHiveMetastore( MetastoreLocator metastoreLocator, - MetastoreConfig metastoreConfig, + @HideDeltaLakeTables boolean hideDeltaLakeTables, @TranslateHiveViews boolean translateHiveViews, ThriftMetastoreConfig thriftConfig, ThriftMetastoreAuthenticationConfig authenticationConfig, @@ -204,7 +204,7 @@ public ThriftHiveMetastore( { this( metastoreLocator, - metastoreConfig, + hideDeltaLakeTables, translateHiveViews, thriftConfig, hdfsEnvironment, @@ -213,7 +213,7 @@ public ThriftHiveMetastore( public ThriftHiveMetastore( MetastoreLocator metastoreLocator, - MetastoreConfig metastoreConfig, + boolean hideDeltaLakeTables, boolean translateHiveViews, ThriftMetastoreConfig thriftConfig, HdfsEnvironment hdfsEnvironment, @@ -230,8 +230,7 @@ public ThriftHiveMetastore( this.impersonationEnabled = thriftConfig.isImpersonationEnabled(); this.deleteFilesOnDrop = thriftConfig.isDeleteFilesOnDrop(); this.translateHiveViews = translateHiveViews; - requireNonNull(metastoreConfig, "metastoreConfig is null"); - checkArgument(!metastoreConfig.isHideDeltaLakeTables(), "Hiding Delta Lake tables is not supported"); // TODO + checkArgument(!hideDeltaLakeTables, "Hiding Delta Lake tables is not supported"); // TODO this.maxWaitForLock = thriftConfig.getMaxWaitForTransactionLock(); this.authenticationEnabled = authenticationEnabled; diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHive.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHive.java index 9f0bb4260311..62624df980b2 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHive.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHive.java @@ -38,11 +38,11 @@ import io.trino.plugin.hive.metastore.Column; import io.trino.plugin.hive.metastore.HiveColumnStatistics; import io.trino.plugin.hive.metastore.HiveMetastore; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HiveMetastoreFactory; import io.trino.plugin.hive.metastore.HivePrincipal; import io.trino.plugin.hive.metastore.HivePrivilegeInfo; import io.trino.plugin.hive.metastore.HivePrivilegeInfo.HivePrivilege; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.Partition; import io.trino.plugin.hive.metastore.PartitionWithStatistics; import io.trino.plugin.hive.metastore.PrincipalPrivileges; @@ -791,7 +791,7 @@ protected final void setup(String host, int port, String databaseName, String ti HiveMetastore metastore = cachingHiveMetastore( new BridgingHiveMetastore(new ThriftHiveMetastore( metastoreLocator, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new HiveConfig().isTranslateHiveViews(), new ThriftMetastoreConfig(), hdfsEnvironment, diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java index 8a50e1eacdec..e9e9356fde86 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/AbstractTestHiveFileSystem.java @@ -32,8 +32,8 @@ import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.ForwardingHiveMetastore; import io.trino.plugin.hive.metastore.HiveMetastore; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HiveMetastoreFactory; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.PrincipalPrivileges; import io.trino.plugin.hive.metastore.Table; import io.trino.plugin.hive.metastore.thrift.BridgingHiveMetastore; @@ -185,12 +185,12 @@ protected void setup(String host, int port, String databaseName, boolean s3Selec HivePartitionManager hivePartitionManager = new HivePartitionManager(config); hdfsEnvironment = new HdfsEnvironment(hdfsConfiguration, new HdfsConfig(), new NoHdfsAuthentication()); - MetastoreConfig metastoreConfig = new MetastoreConfig(); + HiveMetastoreConfig hiveMetastoreConfig = new HiveMetastoreConfig(); metastoreClient = new TestingHiveMetastore( new BridgingHiveMetastore( new ThriftHiveMetastore( metastoreLocator, - metastoreConfig, + hiveMetastoreConfig.isHideDeltaLakeTables(), new HiveConfig().isTranslateHiveViews(), new ThriftMetastoreConfig(), hdfsEnvironment, @@ -203,7 +203,7 @@ protected void setup(String host, int port, String databaseName, boolean s3Selec metadataFactory = new HiveMetadataFactory( new CatalogName("hive"), config, - metastoreConfig, + hiveMetastoreConfig, HiveMetastoreFactory.ofInstance(metastoreClient), hdfsEnvironment, hivePartitionManager, diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/BaseTestHiveOnDataLake.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/BaseTestHiveOnDataLake.java index 89f14f329510..4d08fab1b6e1 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/BaseTestHiveOnDataLake.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/BaseTestHiveOnDataLake.java @@ -23,7 +23,7 @@ import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.containers.HiveMinioDataLake; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.Partition; import io.trino.plugin.hive.metastore.PartitionWithStatistics; import io.trino.plugin.hive.metastore.Table; @@ -80,7 +80,7 @@ protected QueryRunner createQueryRunner() new TestingMetastoreLocator( Optional.empty(), this.dockerizedS3DataLake.getHiveHadoop().getHiveMetastoreEndpoint()), - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new HiveConfig().isTranslateHiveViews(), new ThriftMetastoreConfig(), new HdfsEnvironment(new HiveHdfsConfiguration( diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/HiveQueryRunner.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/HiveQueryRunner.java index e36058bc9e57..ea02b4db2e3a 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/HiveQueryRunner.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/HiveQueryRunner.java @@ -23,7 +23,7 @@ import io.trino.plugin.hive.fs.DirectoryLister; import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.plugin.tpcds.TpcdsPlugin; @@ -108,7 +108,7 @@ public static class Builder> return new FileHiveMetastore( new NodeVersion("test_version"), HDFS_ENVIRONMENT, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHiveFileMetastore.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHiveFileMetastore.java index a22db0ba6e24..2a49be29068a 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHiveFileMetastore.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHiveFileMetastore.java @@ -15,7 +15,6 @@ import io.trino.plugin.hive.authentication.HiveIdentity; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import org.testng.SkipException; @@ -37,8 +36,7 @@ protected HiveMetastore createMetastore(File tempDir, HiveIdentity identity) return new FileHiveMetastore( new NodeVersion("test_version"), HDFS_ENVIRONMENT, - new MetastoreConfig() - .setHideDeltaLakeTables(true), + true, new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/TestMetastoreConfig.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/TestHiveMetastoreConfig.java similarity index 88% rename from plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/TestMetastoreConfig.java rename to plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/TestHiveMetastoreConfig.java index 4b3930439f75..f5499c617ab5 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/TestMetastoreConfig.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/TestHiveMetastoreConfig.java @@ -22,12 +22,12 @@ import static io.airlift.configuration.testing.ConfigAssertions.assertRecordedDefaults; import static io.airlift.configuration.testing.ConfigAssertions.recordDefaults; -public class TestMetastoreConfig +public class TestHiveMetastoreConfig { @Test public void testDefaults() { - assertRecordedDefaults(recordDefaults(MetastoreConfig.class) + assertRecordedDefaults(recordDefaults(HiveMetastoreConfig.class) .setHideDeltaLakeTables(false)); } @@ -38,7 +38,7 @@ public void testExplicitPropertyMappings() .put("hive.hide-delta-lake-tables", "true") .buildOrThrow(); - MetastoreConfig expected = new MetastoreConfig() + HiveMetastoreConfig expected = new HiveMetastoreConfig() .setHideDeltaLakeTables(true); assertFullMapping(properties, expected); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/cache/TestCachingHiveMetastore.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/cache/TestCachingHiveMetastore.java index 245bd50920b0..b122e959e130 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/cache/TestCachingHiveMetastore.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/cache/TestCachingHiveMetastore.java @@ -26,8 +26,8 @@ import io.trino.plugin.hive.authentication.HiveIdentity; import io.trino.plugin.hive.metastore.Column; import io.trino.plugin.hive.metastore.HiveMetastore; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.HivePrincipal; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.Partition; import io.trino.plugin.hive.metastore.Table; import io.trino.plugin.hive.metastore.UnimplementedHiveMetastore; @@ -154,7 +154,7 @@ private ThriftHiveMetastore createThriftHiveMetastore() private static ThriftHiveMetastore createThriftHiveMetastore(ThriftMetastoreClient client) { MetastoreLocator metastoreLocator = new MockMetastoreLocator(client); - return new ThriftHiveMetastore(metastoreLocator, new MetastoreConfig(), new HiveConfig().isTranslateHiveViews(), new ThriftMetastoreConfig(), HDFS_ENVIRONMENT, false); + return new ThriftHiveMetastore(metastoreLocator, new HiveMetastoreConfig().isHideDeltaLakeTables(), new HiveConfig().isTranslateHiveViews(), new ThriftMetastoreConfig(), HDFS_ENVIRONMENT, false); } @Test diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/glue/TestHiveGlueMetastore.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/glue/TestHiveGlueMetastore.java index 6c81c8e4b080..c1f6bc05bcaf 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/glue/TestHiveGlueMetastore.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/metastore/glue/TestHiveGlueMetastore.java @@ -38,7 +38,6 @@ import io.trino.plugin.hive.authentication.HiveIdentity; import io.trino.plugin.hive.metastore.HiveColumnStatistics; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.PartitionWithStatistics; import io.trino.plugin.hive.metastore.Table; import io.trino.plugin.hive.metastore.glue.converter.GlueInputConverter; @@ -223,9 +222,7 @@ protected HiveMetastore createMetastore(File tempDir, HiveIdentity identity) executor, new DefaultGlueColumnStatisticsProviderFactory(executor, executor), Optional.empty(), - new DefaultGlueMetastoreTableFilterProvider( - new MetastoreConfig() - .setHideDeltaLakeTables(true)).get()); + new DefaultGlueMetastoreTableFilterProvider(true).get()); } @Test diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestConnectorPushdownRulesWithHive.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestConnectorPushdownRulesWithHive.java index 0bc41986507c..fb931eb4a150 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestConnectorPushdownRulesWithHive.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestConnectorPushdownRulesWithHive.java @@ -35,7 +35,7 @@ import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.spi.predicate.Domain; @@ -111,7 +111,7 @@ protected Optional createLocalQueryRunner() metastore = new FileHiveMetastore( new NodeVersion("test_version"), environment, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHivePlans.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHivePlans.java index 5e38979ab2f7..6ee50a8f6dfc 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHivePlans.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHivePlans.java @@ -26,7 +26,7 @@ import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.spi.TrinoException; @@ -89,7 +89,7 @@ protected LocalQueryRunner createLocalQueryRunner() HiveMetastore metastore = new FileHiveMetastore( new NodeVersion("test_version"), environment, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHiveProjectionPushdownIntoTableScan.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHiveProjectionPushdownIntoTableScan.java index dbda46f2451c..fa68309f927a 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHiveProjectionPushdownIntoTableScan.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/optimizer/TestHiveProjectionPushdownIntoTableScan.java @@ -32,7 +32,7 @@ import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.spi.connector.ColumnHandle; @@ -89,7 +89,7 @@ protected LocalQueryRunner createLocalQueryRunner() HiveMetastore metastore = new FileHiveMetastore( new NodeVersion("test_version"), environment, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/s3/S3HiveQueryRunner.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/s3/S3HiveQueryRunner.java index 184c22d1ba0d..7e903d163c50 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/s3/S3HiveQueryRunner.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/s3/S3HiveQueryRunner.java @@ -25,7 +25,7 @@ import io.trino.plugin.hive.authentication.HiveIdentity; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.containers.HiveMinioDataLake; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.thrift.BridgingHiveMetastore; import io.trino.plugin.hive.metastore.thrift.TestingMetastoreLocator; import io.trino.plugin.hive.metastore.thrift.ThriftHiveMetastore; @@ -156,7 +156,7 @@ public DistributedQueryRunner build() Optional.empty(), hiveMetastoreEndpoint, metastoreTimeout), - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new HiveConfig().isTranslateHiveViews(), new ThriftMetastoreConfig(), new HdfsEnvironment(new HiveHdfsConfiguration( diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergModule.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergModule.java index 69546d8ffc7a..6ec52f71ace0 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergModule.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergModule.java @@ -19,7 +19,6 @@ import com.google.inject.multibindings.Multibinder; import io.trino.plugin.base.session.SessionPropertiesProvider; import io.trino.plugin.hive.FileFormatDataSourceStats; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.orc.OrcReaderConfig; import io.trino.plugin.hive.orc.OrcWriterConfig; import io.trino.plugin.hive.parquet.ParquetReaderConfig; @@ -48,7 +47,6 @@ public void configure(Binder binder) { binder.bind(IcebergTransactionManager.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(IcebergConfig.class); - configBinder(binder).bindConfig(MetastoreConfig.class); newSetBinder(binder, SessionPropertiesProvider.class).addBinding().to(IcebergSessionProperties.class).in(Scopes.SINGLETON); binder.bind(IcebergTableProperties.class).in(Scopes.SINGLETON); diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/file/IcebergFileMetastoreCatalogModule.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/file/IcebergFileMetastoreCatalogModule.java index d366ad8b994f..9a968f0943f9 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/file/IcebergFileMetastoreCatalogModule.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/file/IcebergFileMetastoreCatalogModule.java @@ -14,8 +14,10 @@ package io.trino.plugin.iceberg.catalog.file; import com.google.inject.Binder; +import com.google.inject.Key; import com.google.inject.Scopes; import io.airlift.configuration.AbstractConfigurationAwareModule; +import io.trino.plugin.hive.HideDeltaLakeTables; import io.trino.plugin.hive.metastore.DecoratedHiveMetastoreModule; import io.trino.plugin.hive.metastore.file.FileMetastoreModule; import io.trino.plugin.iceberg.catalog.IcebergCatalogModule.MetastoreValidator; @@ -23,6 +25,8 @@ import io.trino.plugin.iceberg.catalog.TrinoCatalogFactory; import io.trino.plugin.iceberg.catalog.hms.TrinoHiveCatalogFactory; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; + public class IcebergFileMetastoreCatalogModule extends AbstractConfigurationAwareModule { @@ -33,6 +37,7 @@ protected void setup(Binder binder) binder.bind(IcebergTableOperationsProvider.class).to(FileMetastoreTableOperationsProvider.class).in(Scopes.SINGLETON); binder.bind(TrinoCatalogFactory.class).to(TrinoHiveCatalogFactory.class).in(Scopes.SINGLETON); binder.bind(MetastoreValidator.class).asEagerSingleton(); + binder.bind(Key.get(boolean.class, HideDeltaLakeTables.class)).toInstance(HIDE_DELTA_LAKE_TABLES_IN_ICEBERG); install(new DecoratedHiveMetastoreModule()); } } diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/hms/IcebergHiveMetastoreCatalogModule.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/hms/IcebergHiveMetastoreCatalogModule.java index ea23d0f103f1..fb1b23645f7f 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/hms/IcebergHiveMetastoreCatalogModule.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/catalog/hms/IcebergHiveMetastoreCatalogModule.java @@ -17,6 +17,7 @@ import com.google.inject.Key; import com.google.inject.Scopes; import io.airlift.configuration.AbstractConfigurationAwareModule; +import io.trino.plugin.hive.HideDeltaLakeTables; import io.trino.plugin.hive.metastore.DecoratedHiveMetastoreModule; import io.trino.plugin.hive.metastore.thrift.ThriftMetastoreModule; import io.trino.plugin.hive.metastore.thrift.TranslateHiveViews; @@ -27,6 +28,8 @@ public class IcebergHiveMetastoreCatalogModule extends AbstractConfigurationAwareModule { + public static final boolean HIDE_DELTA_LAKE_TABLES_IN_ICEBERG = false; + @Override protected void setup(Binder binder) { @@ -35,6 +38,7 @@ protected void setup(Binder binder) binder.bind(TrinoCatalogFactory.class).to(TrinoHiveCatalogFactory.class).in(Scopes.SINGLETON); binder.bind(MetastoreValidator.class).asEagerSingleton(); binder.bind(Key.get(boolean.class, TranslateHiveViews.class)).toInstance(false); + binder.bind(Key.get(boolean.class, HideDeltaLakeTables.class)).toInstance(HIDE_DELTA_LAKE_TABLES_IN_ICEBERG); install(new DecoratedHiveMetastoreModule()); } } diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMergeAppend.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMergeAppend.java index b220e30de602..b97042bcf95a 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMergeAppend.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMergeAppend.java @@ -23,7 +23,6 @@ import io.trino.plugin.hive.NodeVersion; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.plugin.iceberg.catalog.IcebergTableOperationsProvider; @@ -43,6 +42,7 @@ import java.io.File; import static io.trino.plugin.hive.metastore.cache.CachingHiveMetastore.memoizeMetastore; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; import static org.testng.Assert.assertEquals; public class TestIcebergMergeAppend @@ -63,7 +63,7 @@ protected QueryRunner createQueryRunner() throws Exception HiveMetastore metastore = new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + HIDE_DELTA_LAKE_TABLES_IN_ICEBERG, new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetadataListing.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetadataListing.java index e30336a510c4..d4a320adfa7a 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetadataListing.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetadataListing.java @@ -27,7 +27,6 @@ import io.trino.plugin.hive.TestingHivePlugin; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.spi.connector.SchemaTableName; @@ -45,6 +44,7 @@ import java.util.Optional; import static com.google.inject.util.Modules.EMPTY_MODULE; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; import static io.trino.spi.security.SelectedRole.Type.ROLE; import static io.trino.testing.TestingSession.testSessionBuilder; import static org.assertj.core.api.Assertions.assertThat; @@ -75,7 +75,7 @@ protected DistributedQueryRunner createQueryRunner() metastore = new FileHiveMetastore( new NodeVersion("test_version"), hdfsEnvironment, - new MetastoreConfig(), + HIDE_DELTA_LAKE_TABLES_IN_ICEBERG, new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetastoreAccessOperations.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetastoreAccessOperations.java index f913bb142bb2..507ed6f4c64c 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetastoreAccessOperations.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergMetastoreAccessOperations.java @@ -27,7 +27,6 @@ import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.CountingAccessHiveMetastore; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.testing.AbstractTestQueryFramework; @@ -52,6 +51,7 @@ import static io.trino.plugin.iceberg.TableType.PARTITIONS; import static io.trino.plugin.iceberg.TableType.PROPERTIES; import static io.trino.plugin.iceberg.TableType.SNAPSHOTS; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; import static io.trino.testing.TestingSession.testSessionBuilder; import static java.lang.String.format; import static java.lang.String.join; @@ -82,7 +82,7 @@ protected DistributedQueryRunner createQueryRunner() HiveMetastore hiveMetastore = new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + HIDE_DELTA_LAKE_TABLES_IN_ICEBERG, new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergOrcMetricsCollection.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergOrcMetricsCollection.java index 8de607a5dfaf..e82219cfefa2 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergOrcMetricsCollection.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergOrcMetricsCollection.java @@ -24,7 +24,7 @@ import io.trino.plugin.hive.NodeVersion; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.plugin.iceberg.catalog.IcebergTableOperationsProvider; @@ -90,7 +90,7 @@ protected QueryRunner createQueryRunner() HiveMetastore metastore = new FileHiveMetastore( new NodeVersion("test_version"), hdfsEnvironment, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithCustomLocation.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithCustomLocation.java index 2f52aad349c4..e821579f07aa 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithCustomLocation.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithCustomLocation.java @@ -22,7 +22,6 @@ import io.trino.plugin.hive.HiveHdfsConfiguration; import io.trino.plugin.hive.NodeVersion; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.Table; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; @@ -45,6 +44,7 @@ import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import static io.trino.plugin.iceberg.DataFileRecord.toDataFileRecord; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; import static org.testng.Assert.assertEquals; @@ -75,7 +75,7 @@ protected DistributedQueryRunner createQueryRunner() metastore = new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + HIDE_DELTA_LAKE_TABLES_IN_ICEBERG, config); return IcebergQueryRunner.builder() diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithExternalLocation.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithExternalLocation.java index e6377558b28a..e9cc13526245 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithExternalLocation.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergTableWithExternalLocation.java @@ -22,7 +22,6 @@ import io.trino.plugin.hive.HiveHdfsConfiguration; import io.trino.plugin.hive.NodeVersion; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.Table; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; @@ -43,6 +42,7 @@ import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import static io.trino.plugin.iceberg.DataFileRecord.toDataFileRecord; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; import static io.trino.testing.sql.TestTable.randomTableSuffix; import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; @@ -73,7 +73,7 @@ protected DistributedQueryRunner createQueryRunner() metastore = new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + HIDE_DELTA_LAKE_TABLES_IN_ICEBERG, config); return IcebergQueryRunner.builder() diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestSharedHiveMetastore.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestSharedHiveMetastore.java index b72dab0f4394..c646834f4d22 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestSharedHiveMetastore.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestSharedHiveMetastore.java @@ -25,7 +25,7 @@ import io.trino.plugin.hive.TestingHivePlugin; import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; +import io.trino.plugin.hive.metastore.HiveMetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.plugin.tpch.TpchPlugin; @@ -89,7 +89,7 @@ protected QueryRunner createQueryRunner() HiveMetastore metastore = new FileHiveMetastore( new NodeVersion("testversion"), hdfsEnvironment, - new MetastoreConfig(), + new HiveMetastoreConfig().isHideDeltaLakeTables(), new FileHiveMetastoreConfig() .setCatalogDirectory(dataDirectory.toFile().toURI().toString()) .setMetastoreUser("test")); diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/optimizer/TestConnectorPushdownRulesWithIceberg.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/optimizer/TestConnectorPushdownRulesWithIceberg.java index 97e36eac258a..22f7dae0155c 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/optimizer/TestConnectorPushdownRulesWithIceberg.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/optimizer/TestConnectorPushdownRulesWithIceberg.java @@ -30,7 +30,6 @@ import io.trino.plugin.hive.authentication.NoHdfsAuthentication; import io.trino.plugin.hive.metastore.Database; import io.trino.plugin.hive.metastore.HiveMetastore; -import io.trino.plugin.hive.metastore.MetastoreConfig; import io.trino.plugin.hive.metastore.file.FileHiveMetastore; import io.trino.plugin.hive.metastore.file.FileHiveMetastoreConfig; import io.trino.plugin.iceberg.ColumnIdentity; @@ -72,6 +71,7 @@ import static io.trino.plugin.iceberg.ColumnIdentity.TypeCategory.STRUCT; import static io.trino.plugin.iceberg.ColumnIdentity.primitiveColumnIdentity; import static io.trino.plugin.iceberg.TableType.DATA; +import static io.trino.plugin.iceberg.catalog.hms.IcebergHiveMetastoreCatalogModule.HIDE_DELTA_LAKE_TABLES_IN_ICEBERG; import static io.trino.spi.connector.RetryMode.NO_RETRIES; import static io.trino.spi.type.BigintType.BIGINT; import static io.trino.spi.type.IntegerType.INTEGER; @@ -119,7 +119,7 @@ protected Optional createLocalQueryRunner() metastore = new FileHiveMetastore( new NodeVersion("testversion"), environment, - new MetastoreConfig(), + HIDE_DELTA_LAKE_TABLES_IN_ICEBERG, new FileHiveMetastoreConfig() .setCatalogDirectory(baseDir.toURI().toString()) .setMetastoreUser("test"));