From bb0ee5c468703bc6900dddc32743cf387ead7466 Mon Sep 17 00:00:00 2001 From: Chunxu Tang Date: Fri, 4 Mar 2022 14:58:10 -0800 Subject: [PATCH] Avoid redundant metastore calls for non-system Iceberg tables Cherry-pick of https://github.com/trinodb/trino/commit/d29fcd983afba99c3e3b76e530ebc9b5713fc3c3 Co-Authored-By: Piotr Findeisen --- .../com/facebook/presto/iceberg/IcebergHadoopMetadata.java | 4 ++++ .../java/com/facebook/presto/iceberg/IcebergHiveMetadata.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHadoopMetadata.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHadoopMetadata.java index 5e6f06beee668..77c38e771f775 100644 --- a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHadoopMetadata.java +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHadoopMetadata.java @@ -130,6 +130,10 @@ public IcebergTableHandle getTableHandle(ConnectorSession session, SchemaTableNa public Optional getSystemTable(ConnectorSession session, SchemaTableName tableName) { IcebergTableName name = IcebergTableName.from(tableName.getTableName()); + if (name.getTableType() == DATA) { + return Optional.empty(); + } + TableIdentifier tableIdentifier = toIcebergTableIdentifier(tableName.getSchemaName(), name.getTableName()); Table table; try { diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHiveMetadata.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHiveMetadata.java index a806d46c6a33c..4b017440702c8 100644 --- a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHiveMetadata.java +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergHiveMetadata.java @@ -143,6 +143,9 @@ public Optional getSystemTable(ConnectorSession session, SchemaTabl private Optional getRawSystemTable(ConnectorSession session, SchemaTableName tableName) { IcebergTableName name = IcebergTableName.from(tableName.getTableName()); + if (name.getTableType() == DATA) { + return Optional.empty(); + } MetastoreContext metastoreContext = new MetastoreContext(session.getIdentity(), session.getQueryId(), session.getClientInfo(), session.getSource(), Optional.empty(), false, HiveColumnConverterProvider.DEFAULT_COLUMN_CONVERTER_PROVIDER); Optional hiveTable = metastore.getTable(metastoreContext, tableName.getSchemaName(), name.getTableName());