From 08058b9e18910e92beb559b3e218b0fed5b75995 Mon Sep 17 00:00:00 2001 From: Joe Chu <5282594+joechu1@users.noreply.github.com> Date: Sun, 15 May 2022 22:00:03 -0700 Subject: [PATCH 1/2] Ignore owner if translating Hive view in INVOKER mode --- .../main/java/io/trino/plugin/hive/LegacyHiveViewReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/LegacyHiveViewReader.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/LegacyHiveViewReader.java index 622b1ff54fa8..823ff9719482 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/LegacyHiveViewReader.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/LegacyHiveViewReader.java @@ -49,7 +49,7 @@ public ConnectorViewDefinition decodeViewData(String viewData, Table table, Cata .map(column -> new ConnectorViewDefinition.ViewColumn(column.getName(), TypeId.of(column.getType().getTypeSignature().toString()))) .collect(toImmutableList()), Optional.ofNullable(table.getParameters().get(TABLE_COMMENT)), - table.getOwner(), + hiveViewsRunAsInvoker ? Optional.empty() : table.getOwner(), hiveViewsRunAsInvoker); } } From 834d03aac5dda1dc193fa215fac420924551f7a9 Mon Sep 17 00:00:00 2001 From: Joe Chu <5282594+joechu1@users.noreply.github.com> Date: Thu, 15 Sep 2022 23:24:12 -0700 Subject: [PATCH 2/2] Streamline code for non-legacy reader --- .../java/io/trino/plugin/hive/HiveMetadata.java | 14 +------------- .../java/io/trino/plugin/hive/ViewReaderUtil.java | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java index 3634363ad3b3..703b6ec6d3f2 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java @@ -2443,20 +2443,8 @@ public Optional getView(ConnectorSession session, Schem throw new HiveViewNotSupportedException(viewName); } - ConnectorViewDefinition definition = createViewReader(metastore, session, view, typeManager, this::redirectTable, metadataProvider, hiveViewsRunAsInvoker) + return createViewReader(metastore, session, view, typeManager, this::redirectTable, metadataProvider, hiveViewsRunAsInvoker) .decodeViewData(view.getViewOriginalText().get(), view, catalogName); - // use owner from table metadata if it exists - if (view.getOwner().isPresent() && !definition.isRunAsInvoker()) { - definition = new ConnectorViewDefinition( - definition.getOriginalSql(), - definition.getCatalog(), - definition.getSchema(), - definition.getColumns(), - definition.getComment(), - view.getOwner(), - false); - } - return definition; }); } diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/ViewReaderUtil.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/ViewReaderUtil.java index 9f053a48c0b5..073b18a78afd 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/ViewReaderUtil.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/ViewReaderUtil.java @@ -226,7 +226,7 @@ public ConnectorViewDefinition decodeViewData(String viewSql, Table table, Catal Optional.of(table.getDatabaseName()), columns, Optional.ofNullable(table.getParameters().get(TABLE_COMMENT)), - Optional.empty(), + hiveViewsRunAsInvoker ? Optional.empty() : table.getOwner(), hiveViewsRunAsInvoker); } catch (RuntimeException e) {