public static Builder builder(ColumnMetadata... columns) { return builder(ImmutableList.copyOf(columns)); }
public static Builder builder(ColumnMetadata... columns) { return builder(ImmutableList.copyOf(columns)); }
private InternalTable buildViews(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_VIEWS)); for (QualifiedTablePrefix prefix : prefixes) { for (Entry<QualifiedObjectName, ViewDefinition> entry : metadata.getViews(session, prefix).entrySet()) { table.add( entry.getKey().getCatalogName(), entry.getKey().getSchemaName(), entry.getKey().getObjectName(), entry.getValue().getOriginalSql()); } } return table.build(); }
private InternalTable buildViews(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_VIEWS)); for (QualifiedTablePrefix prefix : prefixes) { for (Entry<QualifiedObjectName, ViewDefinition> entry : metadata.getViews(session, prefix).entrySet()) { table.add( entry.getKey().getCatalogName(), entry.getKey().getSchemaName(), entry.getKey().getObjectName(), entry.getValue().getOriginalSql()); } } return table.build(); }
private InternalTable buildSchemata(Session session, String catalogName) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_SCHEMATA)); for (String schema : listSchemas(session, metadata, accessControl, catalogName)) { table.add(catalogName, schema); } return table.build(); }
private InternalTable buildEnabledRoles(Session session, String catalog) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_ENABLED_ROLES)); for (String role : metadata.listEnabledRoles(session, catalog)) { table.add(role); } return table.build(); } }
private InternalTable buildEnabledRoles(Session session, String catalog) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_ENABLED_ROLES)); for (String role : metadata.listEnabledRoles(session, catalog)) { table.add(role); } return table.build(); } }
private InternalTable buildSchemata(Session session, String catalogName) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_SCHEMATA)); for (String schema : listSchemas(session, metadata, accessControl, catalogName)) { table.add(catalogName, schema); } return table.build(); }
private InternalTable buildTables(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_TABLES)); for (QualifiedTablePrefix prefix : prefixes) { Set<SchemaTableName> tables = listTables(session, metadata, accessControl, prefix); Set<SchemaTableName> views = listViews(session, metadata, accessControl, prefix); for (SchemaTableName name : union(tables, views)) { // if table and view names overlap, the view wins String type = views.contains(name) ? "VIEW" : "BASE TABLE"; table.add( prefix.getCatalogName(), name.getSchemaName(), name.getTableName(), type); } } return table.build(); }
private InternalTable buildTables(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_TABLES)); for (QualifiedTablePrefix prefix : prefixes) { Set<SchemaTableName> tables = listTables(session, metadata, accessControl, prefix); Set<SchemaTableName> views = listViews(session, metadata, accessControl, prefix); for (SchemaTableName name : union(tables, views)) { // if table and view names overlap, the view wins String type = views.contains(name) ? "VIEW" : "BASE TABLE"; table.add( prefix.getCatalogName(), name.getSchemaName(), name.getTableName(), type); } } return table.build(); }
private InternalTable buildTablePrivileges(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_TABLE_PRIVILEGES)); for (QualifiedTablePrefix prefix : prefixes) { List<GrantInfo> grants = ImmutableList.copyOf(listTablePrivileges(session, metadata, accessControl, prefix)); for (GrantInfo grant : grants) { table.add( grant.getGrantor().map(PrestoPrincipal::getName).orElse(null), grant.getGrantor().map(principal -> principal.getType().toString()).orElse(null), grant.getGrantee().getName(), grant.getGrantee().getType().toString(), prefix.getCatalogName(), grant.getSchemaTableName().getSchemaName(), grant.getSchemaTableName().getTableName(), grant.getPrivilegeInfo().getPrivilege().name(), grant.getPrivilegeInfo().isGrantOption() ? "YES" : "NO", grant.getWithHierarchy().map(withHierarchy -> withHierarchy ? "YES" : "NO").orElse(null)); } } return table.build(); }
private InternalTable buildTablePrivileges(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_TABLE_PRIVILEGES)); for (QualifiedTablePrefix prefix : prefixes) { List<GrantInfo> grants = ImmutableList.copyOf(listTablePrivileges(session, metadata, accessControl, prefix)); for (GrantInfo grant : grants) { table.add( grant.getGrantor().map(PrestoPrincipal::getName).orElse(null), grant.getGrantor().map(principal -> principal.getType().toString()).orElse(null), grant.getGrantee().getName(), grant.getGrantee().getType().toString(), prefix.getCatalogName(), grant.getSchemaTableName().getSchemaName(), grant.getSchemaTableName().getTableName(), grant.getPrivilegeInfo().getPrivilege().name(), grant.getPrivilegeInfo().isGrantOption() ? "YES" : "NO", grant.getWithHierarchy().map(withHierarchy -> withHierarchy ? "YES" : "NO").orElse(null)); } } return table.build(); }
private InternalTable buildColumns(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_COLUMNS)); for (QualifiedTablePrefix prefix : prefixes) { for (Entry<SchemaTableName, List<ColumnMetadata>> entry : listTableColumns(session, metadata, accessControl, prefix).entrySet()) { SchemaTableName tableName = entry.getKey(); int ordinalPosition = 1; for (ColumnMetadata column : entry.getValue()) { if (column.isHidden()) { continue; } table.add( prefix.getCatalogName(), tableName.getSchemaName(), tableName.getTableName(), column.getName(), ordinalPosition, null, "YES", column.getType().getDisplayName(), column.getComment(), column.getExtraInfo()); ordinalPosition++; } } } return table.build(); }
private InternalTable buildRoles(Session session, String catalog) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_ROLES)); try { accessControl.checkCanShowRoles(session.getRequiredTransactionId(), session.getIdentity(), catalog); } catch (AccessDeniedException exception) { return table.build(); } for (String role : metadata.listRoles(session, catalog)) { table.add(role); } return table.build(); }
private InternalTable buildColumns(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_COLUMNS)); for (QualifiedTablePrefix prefix : prefixes) { for (Entry<SchemaTableName, List<ColumnMetadata>> entry : listTableColumns(session, metadata, accessControl, prefix).entrySet()) { SchemaTableName tableName = entry.getKey(); int ordinalPosition = 1; for (ColumnMetadata column : entry.getValue()) { if (column.isHidden()) { continue; } table.add( prefix.getCatalogName(), tableName.getSchemaName(), tableName.getTableName(), column.getName(), ordinalPosition, null, "YES", column.getType().getDisplayName(), column.getComment(), column.getExtraInfo()); ordinalPosition++; } } } return table.build(); }
private InternalTable buildRoles(Session session, String catalog) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_ROLES)); try { accessControl.checkCanShowRoles(session.getRequiredTransactionId(), session.getIdentity(), catalog); } catch (AccessDeniedException exception) { return table.build(); } for (String role : metadata.listRoles(session, catalog)) { table.add(role); } return table.build(); }
private InternalTable buildApplicableRoles(Session session, String catalog) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_APPLICABLE_ROLES)); for (RoleGrant grant : metadata.listApplicableRoles(session, new PrestoPrincipal(USER, session.getUser()), catalog)) { PrestoPrincipal grantee = grant.getGrantee(); table.add( grantee.getName(), grantee.getType().toString(), grant.getRoleName(), grant.isGrantable() ? "YES" : "NO"); } return table.build(); }
private InternalTable buildApplicableRoles(Session session, String catalog) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_APPLICABLE_ROLES)); for (RoleGrant grant : metadata.listApplicableRoles(session, new PrestoPrincipal(USER, session.getUser()), catalog)) { PrestoPrincipal grantee = grant.getGrantee(); table.add( grantee.getName(), grantee.getType().toString(), grant.getRoleName(), grant.isGrantable() ? "YES" : "NO"); } return table.build(); }