Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 36cbd9c

Browse files
committed
Remove unused listAllRoleGrants API
This was used exclusively by the removed information_schema role_authorization_descriptors table.
1 parent d81b83b commit 36cbd9c

File tree

15 files changed

+11
-165
lines changed

15 files changed

+11
-165
lines changed

core/trino-main/src/main/java/io/trino/metadata/DisabledSystemSecurityMetadata.java

-7
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.trino.spi.security.TrinoPrincipal;
2626

2727
import java.util.Optional;
28-
import java.util.OptionalLong;
2928
import java.util.Set;
3029

3130
import static io.trino.spi.StandardErrorCode.NOT_SUPPORTED;
@@ -57,12 +56,6 @@ public Set<String> listRoles(Session session)
5756
return ImmutableSet.of();
5857
}
5958

60-
@Override
61-
public Set<RoleGrant> listAllRoleGrants(Session session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
62-
{
63-
return ImmutableSet.of();
64-
}
65-
6659
@Override
6760
public Set<RoleGrant> listRoleGrants(Session session, TrinoPrincipal principal)
6861
{

core/trino-main/src/main/java/io/trino/metadata/Metadata.java

-8
Original file line numberDiff line numberDiff line change
@@ -546,14 +546,6 @@ default void validateScan(Session session, TableHandle table) {}
546546
*/
547547
Set<String> listRoles(Session session, Optional<String> catalog);
548548

549-
/**
550-
* List all role grants in the specified catalog,
551-
* optionally filtered by passed role, grantee, and limit predicates.
552-
*
553-
* @param catalog if present, the role catalog; otherwise the role is a system role
554-
*/
555-
Set<RoleGrant> listAllRoleGrants(Session session, Optional<String> catalog, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit);
556-
557549
/**
558550
* List roles grants in the specified catalog for a given principal, not recursively.
559551
*

core/trino-main/src/main/java/io/trino/metadata/MetadataManager.java

-21
Original file line numberDiff line numberDiff line change
@@ -1829,27 +1829,6 @@ public Set<String> listRoles(Session session, Optional<String> catalog)
18291829
return systemSecurityMetadata.listRoles(session);
18301830
}
18311831

1832-
@Override
1833-
public Set<RoleGrant> listAllRoleGrants(Session session, Optional<String> catalog, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
1834-
{
1835-
if (catalog.isPresent()) {
1836-
Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog.get());
1837-
if (catalogMetadata.isEmpty()) {
1838-
return ImmutableSet.of();
1839-
}
1840-
// If the connector is using system security management, we fall through to the system call
1841-
// instead of returning nothing, so information schema role tables will work properly
1842-
if (catalogMetadata.get().getSecurityManagement() == CONNECTOR) {
1843-
CatalogHandle catalogHandle = catalogMetadata.get().getCatalogHandle();
1844-
ConnectorSession connectorSession = session.toConnectorSession(catalogHandle);
1845-
ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(session, catalogHandle);
1846-
return metadata.listAllRoleGrants(connectorSession, roles, grantees, limit);
1847-
}
1848-
}
1849-
1850-
return systemSecurityMetadata.listAllRoleGrants(session, roles, grantees, limit);
1851-
}
1852-
18531832
@Override
18541833
public Set<RoleGrant> listRoleGrants(Session session, Optional<String> catalog, TrinoPrincipal principal)
18551834
{

core/trino-main/src/main/java/io/trino/metadata/SystemSecurityMetadata.java

-7
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import io.trino.spi.security.TrinoPrincipal;
2424

2525
import java.util.Optional;
26-
import java.util.OptionalLong;
2726
import java.util.Set;
2827

2928
public interface SystemSecurityMetadata
@@ -50,12 +49,6 @@ public interface SystemSecurityMetadata
5049
*/
5150
Set<String> listRoles(Session session);
5251

53-
/**
54-
* List all role grants,
55-
* optionally filtered by passed role, grantee, and limit predicates.
56-
*/
57-
Set<RoleGrant> listAllRoleGrants(Session session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit);
58-
5952
/**
6053
* List roles grants for a given principal, not recursively.
6154
*/

core/trino-main/src/test/java/io/trino/connector/MockConnector.java

-6
Original file line numberDiff line numberDiff line change
@@ -706,12 +706,6 @@ public Set<RoleGrant> listRoleGrants(ConnectorSession session, TrinoPrincipal pr
706706
.collect(toImmutableSet());
707707
}
708708

709-
@Override
710-
public Set<RoleGrant> listAllRoleGrants(ConnectorSession session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
711-
{
712-
return roleGrants.apply(session, roles, grantees, limit);
713-
}
714-
715709
@Override
716710
public Set<RoleGrant> listApplicableRoles(ConnectorSession session, TrinoPrincipal principal)
717711
{

core/trino-main/src/test/java/io/trino/metadata/AbstractMockMetadata.java

-6
Original file line numberDiff line numberDiff line change
@@ -684,12 +684,6 @@ public Set<String> listEnabledRoles(Session session, String catalog)
684684
throw new UnsupportedOperationException();
685685
}
686686

687-
@Override
688-
public Set<RoleGrant> listAllRoleGrants(Session session, Optional<String> catalog, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
689-
{
690-
throw new UnsupportedOperationException();
691-
}
692-
693687
@Override
694688
public Set<RoleGrant> listRoleGrants(Session session, Optional<String> catalog, TrinoPrincipal principal)
695689
{

core/trino-main/src/test/java/io/trino/metadata/CountingAccessMetadata.java

-6
Original file line numberDiff line numberDiff line change
@@ -662,12 +662,6 @@ public Set<String> listRoles(Session session, Optional<String> catalog)
662662
return delegate.listRoles(session, catalog);
663663
}
664664

665-
@Override
666-
public Set<RoleGrant> listAllRoleGrants(Session session, Optional<String> catalog, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
667-
{
668-
return delegate.listAllRoleGrants(session, catalog, roles, grantees, limit);
669-
}
670-
671665
@Override
672666
public Set<RoleGrant> listRoleGrants(Session session, Optional<String> catalog, TrinoPrincipal principal)
673667
{

core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java

-9
Original file line numberDiff line numberDiff line change
@@ -896,15 +896,6 @@ default Set<RoleGrant> listRoleGrants(ConnectorSession session, TrinoPrincipal p
896896
throw new TrinoException(NOT_SUPPORTED, "This connector does not support roles");
897897
}
898898

899-
/**
900-
* List all role grants in the specified catalog,
901-
* optionally filtered by passed role, grantee, and limit predicates.
902-
*/
903-
default Set<RoleGrant> listAllRoleGrants(ConnectorSession session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
904-
{
905-
throw new TrinoException(NOT_SUPPORTED, "This connector does not support roles");
906-
}
907-
908899
/**
909900
* Grants the specified roles to the specified grantees
910901
*

core/trino-spi/src/test/java/io/trino/spi/TestSpiBackwardCompatibility.java

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public class TestSpiBackwardCompatibility
6464
.put("394", "Method: public abstract io.trino.spi.exchange.Exchange io.trino.spi.exchange.ExchangeManager.createExchange(io.trino.spi.exchange.ExchangeContext,int)")
6565
.put("394", "Method: public abstract io.trino.spi.exchange.ExchangeSink io.trino.spi.exchange.ExchangeManager.createSink(io.trino.spi.exchange.ExchangeSinkInstanceHandle,boolean)")
6666
.put("394", "Constructor: public io.trino.spi.eventlistener.QueryMetadata(java.lang.String,java.util.Optional<java.lang.String>,java.lang.String,java.util.Optional<java.lang.String>,java.util.Optional<java.lang.String>,java.lang.String,java.util.List<io.trino.spi.eventlistener.TableInfo>,java.util.List<io.trino.spi.eventlistener.RoutineInfo>,java.net.URI,java.util.Optional<java.lang.String>,java.util.Optional<java.lang.String>)")
67+
.put("395", "Method: public default java.util.Set<io.trino.spi.security.RoleGrant> io.trino.spi.connector.ConnectorMetadata.listAllRoleGrants(io.trino.spi.connector.ConnectorSession,java.util.Optional<java.util.Set<java.lang.String>>,java.util.Optional<java.util.Set<java.lang.String>>,java.util.OptionalLong)")
6768
.build();
6869

6970
@Test

lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java

-8
Original file line numberDiff line numberDiff line change
@@ -711,14 +711,6 @@ public Set<String> listRoles(ConnectorSession session)
711711
}
712712
}
713713

714-
@Override
715-
public Set<RoleGrant> listAllRoleGrants(ConnectorSession session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
716-
{
717-
try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) {
718-
return delegate.listAllRoleGrants(session, roles, grantees, limit);
719-
}
720-
}
721-
722714
@Override
723715
public Set<RoleGrant> listRoleGrants(ConnectorSession session, TrinoPrincipal principal)
724716
{

plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveMetadata.java

-6
Original file line numberDiff line numberDiff line change
@@ -3302,12 +3302,6 @@ public Set<String> listRoles(ConnectorSession session)
33023302
return accessControlMetadata.listRoles(session);
33033303
}
33043304

3305-
@Override
3306-
public Set<RoleGrant> listAllRoleGrants(ConnectorSession session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
3307-
{
3308-
return ImmutableSet.copyOf(accessControlMetadata.listAllRoleGrants(session, roles, grantees, limit));
3309-
}
3310-
33113305
@Override
33123306
public Set<RoleGrant> listRoleGrants(ConnectorSession session, TrinoPrincipal principal)
33133307
{

plugin/trino-hive/src/main/java/io/trino/plugin/hive/security/AccessControlMetadata.java

-9
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
import java.util.List;
2525
import java.util.Optional;
26-
import java.util.OptionalLong;
2726
import java.util.Set;
2827

2928
import static io.trino.spi.StandardErrorCode.NOT_SUPPORTED;
@@ -69,14 +68,6 @@ default Set<String> listRoles(ConnectorSession session)
6968
throw new TrinoException(NOT_SUPPORTED, "This connector does not support roles");
7069
}
7170

72-
/**
73-
* List principals for a given role, not recursively.
74-
*/
75-
default Set<RoleGrant> listAllRoleGrants(ConnectorSession session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
76-
{
77-
throw new TrinoException(NOT_SUPPORTED, "This connector does not support roles");
78-
}
79-
8071
/**
8172
* List role grants for a given principal, not recursively.
8273
*/

plugin/trino-hive/src/main/java/io/trino/plugin/hive/security/SqlStandardAccessControlMetadata.java

-55
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,17 @@
2424
import io.trino.spi.connector.SchemaTableName;
2525
import io.trino.spi.connector.TableNotFoundException;
2626
import io.trino.spi.security.GrantInfo;
27-
import io.trino.spi.security.PrincipalType;
2827
import io.trino.spi.security.Privilege;
2928
import io.trino.spi.security.PrivilegeInfo;
3029
import io.trino.spi.security.RoleGrant;
3130

3231
import java.util.List;
3332
import java.util.Optional;
34-
import java.util.OptionalLong;
3533
import java.util.Set;
3634

3735
import static com.google.common.collect.ImmutableSet.toImmutableSet;
3836
import static io.trino.plugin.hive.security.SqlStandardAccessControl.ADMIN_ROLE_NAME;
3937
import static io.trino.spi.StandardErrorCode.ALREADY_EXISTS;
40-
import static io.trino.spi.security.PrincipalType.ROLE;
4138
import static io.trino.spi.security.PrincipalType.USER;
4239
import static java.util.Locale.ENGLISH;
4340
import static java.util.Objects.requireNonNull;
@@ -48,7 +45,6 @@ public class SqlStandardAccessControlMetadata
4845
implements AccessControlMetadata
4946
{
5047
private static final Set<String> RESERVED_ROLES = ImmutableSet.of("all", "default", "none");
51-
private static final String PUBLIC_ROLE_NAME = "public";
5248

5349
private final SqlStandardAccessControlMetadataMetastore metastore;
5450

@@ -85,57 +81,6 @@ public Set<String> listRoles(ConnectorSession session)
8581
return ImmutableSet.copyOf(metastore.listRoles());
8682
}
8783

88-
@Override
89-
public Set<RoleGrant> listAllRoleGrants(ConnectorSession session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
90-
{
91-
Set<String> actualRoles = roles.orElseGet(() -> metastore.listRoles());
92-
93-
// choose more efficient path
94-
if (grantees.isPresent() && actualRoles.size() > grantees.get().size() * 2) {
95-
// 2x because we check two grantee types (ROLE or USER)
96-
return getRoleGrantsByGrantees(grantees.get(), limit);
97-
}
98-
return getRoleGrantsByRoles(actualRoles, limit);
99-
}
100-
101-
private Set<RoleGrant> getRoleGrantsByGrantees(Set<String> grantees, OptionalLong limit)
102-
{
103-
ImmutableSet.Builder<RoleGrant> roleGrants = ImmutableSet.builder();
104-
int count = 0;
105-
for (String grantee : grantees) {
106-
for (PrincipalType type : new PrincipalType[] {USER, ROLE}) {
107-
if (limit.isPresent() && count >= limit.getAsLong()) {
108-
return roleGrants.build();
109-
}
110-
for (RoleGrant grant : metastore.listRoleGrants(new HivePrincipal(type, grantee))) {
111-
// Filter out the "public" role since it is not explicitly granted in Hive.
112-
if (PUBLIC_ROLE_NAME.equals(grant.getRoleName())) {
113-
continue;
114-
}
115-
count++;
116-
roleGrants.add(grant);
117-
}
118-
}
119-
}
120-
return roleGrants.build();
121-
}
122-
123-
private Set<RoleGrant> getRoleGrantsByRoles(Set<String> roles, OptionalLong limit)
124-
{
125-
ImmutableSet.Builder<RoleGrant> roleGrants = ImmutableSet.builder();
126-
int count = 0;
127-
for (String role : roles) {
128-
if (limit.isPresent() && count >= limit.getAsLong()) {
129-
break;
130-
}
131-
for (RoleGrant grant : metastore.listGrantedPrincipals(role)) {
132-
count++;
133-
roleGrants.add(grant);
134-
}
135-
}
136-
return roleGrants.build();
137-
}
138-
13984
@Override
14085
public Set<RoleGrant> listRoleGrants(ConnectorSession session, HivePrincipal principal)
14186
{

testing/trino-tests/src/test/java/io/trino/security/TestingSystemSecurityMetadata.java

-7
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import java.util.ArrayDeque;
3030
import java.util.HashSet;
3131
import java.util.Optional;
32-
import java.util.OptionalLong;
3332
import java.util.Queue;
3433
import java.util.Set;
3534

@@ -76,12 +75,6 @@ public Set<String> listRoles(Session session)
7675
return ImmutableSet.copyOf(roles);
7776
}
7877

79-
@Override
80-
public Set<RoleGrant> listAllRoleGrants(Session session, Optional<Set<String>> roles, Optional<Set<String>> grantees, OptionalLong limit)
81-
{
82-
return ImmutableSet.copyOf(roleGrants);
83-
}
84-
8578
@Override
8679
public Set<RoleGrant> listRoleGrants(Session session, TrinoPrincipal principal)
8780
{

testing/trino-tests/src/test/java/io/trino/tests/TestInformationSchemaConnector.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ public class TestInformationSchemaConnector
3535
public void testBasic()
3636
{
3737
assertQuery("SELECT count(*) FROM tpch.information_schema.schemata", "VALUES 10");
38-
assertQuery("SELECT count(*) FROM tpch.information_schema.tables", "VALUES 81");
39-
assertQuery("SELECT count(*) FROM tpch.information_schema.columns", "VALUES 589");
38+
assertQuery("SELECT count(*) FROM tpch.information_schema.tables", "VALUES 80");
39+
assertQuery("SELECT count(*) FROM tpch.information_schema.columns", "VALUES 583");
4040
assertQuery("SELECT * FROM tpch.information_schema.schemata ORDER BY 1 DESC, 2 DESC LIMIT 1", "VALUES ('tpch', 'tiny')");
4141
assertQuery("SELECT * FROM tpch.information_schema.tables ORDER BY 1 DESC, 2 DESC, 3 DESC, 4 DESC LIMIT 1", "VALUES ('tpch', 'tiny', 'supplier', 'BASE TABLE')");
4242
assertQuery("SELECT * FROM tpch.information_schema.columns ORDER BY 1 DESC, 2 DESC, 3 DESC, 4 DESC LIMIT 1", "VALUES ('tpch', 'tiny', 'supplier', 'suppkey', 1, NULL, 'NO', 'bigint')");
4343
assertQuery("SELECT * FROM test_catalog.information_schema.columns ORDER BY 1 DESC, 2 DESC, 3 DESC, 4 DESC LIMIT 1", "VALUES ('test_catalog', 'test_schema2', 'test_table999', 'column_99', 100, NULL, 'YES', 'varchar')");
44-
assertQuery("SELECT count(*) FROM test_catalog.information_schema.columns", "VALUES 300040");
44+
assertQuery("SELECT count(*) FROM test_catalog.information_schema.columns", "VALUES 300034");
4545
}
4646

4747
@Test
@@ -50,14 +50,14 @@ public void testSchemaNamePredicate()
5050
assertQuery("SELECT count(*) FROM tpch.information_schema.schemata WHERE schema_name = 'sf1'", "VALUES 1");
5151
assertQuery("SELECT count(*) FROM tpch.information_schema.schemata WHERE schema_name IS NOT NULL", "VALUES 10");
5252
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_schema = 'sf1'", "VALUES 8");
53-
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_schema IS NOT NULL", "VALUES 81");
53+
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_schema IS NOT NULL", "VALUES 80");
5454
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema = 'sf1'", "VALUES 61");
55-
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema = 'information_schema'", "VALUES 40");
55+
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema = 'information_schema'", "VALUES 34");
5656
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema > 'sf100'", "VALUES 427");
57-
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema != 'sf100'", "VALUES 528");
57+
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema != 'sf100'", "VALUES 522");
5858
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema LIKE 'sf100'", "VALUES 61");
5959
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema LIKE 'sf%'", "VALUES 488");
60-
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema IS NOT NULL", "VALUES 589");
60+
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_schema IS NOT NULL", "VALUES 583");
6161
}
6262

6363
@Test
@@ -69,13 +69,13 @@ public void testTableNamePredicate()
6969
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_name < 'orders'", "VALUES 30");
7070
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_name LIKE 'part'", "VALUES 9");
7171
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_name LIKE 'part%'", "VALUES 18");
72-
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_name IS NOT NULL", "VALUES 81");
72+
assertQuery("SELECT count(*) FROM tpch.information_schema.tables WHERE table_name IS NOT NULL", "VALUES 80");
7373
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name = 'orders'", "VALUES 81");
7474
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name LIKE 'orders'", "VALUES 81");
7575
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name < 'orders'", "VALUES 265");
7676
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name LIKE 'part'", "VALUES 81");
7777
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name LIKE 'part%'", "VALUES 126");
78-
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name IS NOT NULL", "VALUES 589");
78+
assertQuery("SELECT count(*) FROM tpch.information_schema.columns WHERE table_name IS NOT NULL", "VALUES 583");
7979
}
8080

8181
@Test
@@ -122,7 +122,7 @@ public void testMetadataCalls()
122122
.withListSchemasCount(1));
123123
assertMetadataCalls(
124124
"SELECT count(*) from test_catalog.information_schema.tables",
125-
"VALUES 3009",
125+
"VALUES 3008",
126126
new MetadataCallsCount()
127127
.withListSchemasCount(1)
128128
.withListTablesCount(2));

0 commit comments

Comments
 (0)