diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java index 733ee57e7af..2d7c3aaf9a4 100644 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/schema/SchemaEmulationByTableNameConvention.java @@ -25,13 +25,9 @@ import org.apache.kudu.client.Delete; import org.apache.kudu.client.KuduException; import org.apache.kudu.client.KuduOperationApplier; -import org.apache.kudu.client.KuduScanner; import org.apache.kudu.client.KuduTable; -import org.apache.kudu.client.RowResult; -import org.apache.kudu.client.RowResultIterator; import org.apache.kudu.client.Upsert; -import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; @@ -113,40 +109,12 @@ public void dropSchema(KuduClientWrapper client, String schemaName, boolean casc public List listSchemaNames(KuduClientWrapper client) { try { - if (rawSchemasTable == null) { - // Try to open the schemas table first, only create if it doesn't exist - try { - rawSchemasTable = client.openTable(rawSchemasTableName); - } - catch (KuduException e) { - if (e.getStatus().isNotFound()) { - // Table doesn't exist, try to create it (requires write permission) - // If creation fails due to permission, fall back to scanning table names - try { - createAndFillSchemasTable(client); - rawSchemasTable = getSchemasTable(client); - } - catch (KuduException createException) { - // Fall back to listing schemas from table names directly (read-only) - return listSchemaNamesFromTablets(client); - } - } - else { - throw e; - } - } - } - - KuduScanner scanner = client.newScannerBuilder(rawSchemasTable).build(); - RowResultIterator iterator = scanner.nextRows(); - ArrayList result = new ArrayList<>(); - while (iterator != null) { - for (RowResult row : iterator) { - result.add(row.getString(0)); - } - iterator = scanner.nextRows(); - } - return result; + // createAndFillSchemasTable(client); + // rawSchemasTable = getSchemasTable(client); + // ATTN, sometimes user does not have write priv for kudu, + // so we can not create schema table here. + // So here we get schema names directly from tablets. + return listSchemaNamesFromTablets(client); } catch (KuduException e) { throw new TrinoException(GENERIC_INTERNAL_ERROR, e);