@Override public boolean catalogExists(Session session, String catalogName) { return getOptionalCatalogMetadata(session, catalogName).isPresent(); }
@Override public boolean catalogExists(Session session, String catalogName) { return getOptionalCatalogMetadata(session, catalogName).isPresent(); }
@Override public Set<RoleGrant> listApplicableRoles(Session session, PrestoPrincipal principal, String catalog) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return ImmutableSet.copyOf(metadata.listApplicableRoles(connectorSession, principal)); }
@Override public Set<RoleGrant> listApplicableRoles(Session session, PrestoPrincipal principal, String catalog) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return ImmutableSet.copyOf(metadata.listApplicableRoles(connectorSession, principal)); }
@Override public Set<String> listEnabledRoles(Session session, String catalog) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return ImmutableSet.copyOf(metadata.listEnabledRoles(connectorSession)); }
@Override public Set<String> listRoles(Session session, String catalog) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return metadata.listRoles(connectorSession).stream() .map(role -> role.toLowerCase(ENGLISH)) .collect(toImmutableSet()); }
@Override public Set<String> listEnabledRoles(Session session, String catalog) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return ImmutableSet.copyOf(metadata.listEnabledRoles(connectorSession)); }
@Override public Set<RoleGrant> listRoleGrants(Session session, String catalog, PrestoPrincipal principal) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return metadata.listRoleGrants(connectorSession, principal); }
@Override public List<String> listSchemaNames(Session session, String catalogName) { Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, catalogName); ImmutableSet.Builder<String> schemaNames = ImmutableSet.builder(); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); ConnectorSession connectorSession = session.toConnectorSession(catalogMetadata.getConnectorId()); for (ConnectorId connectorId : catalogMetadata.listConnectorIds()) { ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); metadata.listSchemaNames(connectorSession).stream() .map(schema -> schema.toLowerCase(Locale.ENGLISH)) .forEach(schemaNames::add); } } return ImmutableList.copyOf(schemaNames.build()); }
@Override public Set<RoleGrant> listRoleGrants(Session session, String catalog, PrestoPrincipal principal) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return metadata.listRoleGrants(connectorSession, principal); }
@Override public Set<String> listRoles(Session session, String catalog) { Optional<CatalogMetadata> catalogMetadata = getOptionalCatalogMetadata(session, catalog); if (!catalogMetadata.isPresent()) { return ImmutableSet.of(); } ConnectorId connectorId = catalogMetadata.get().getConnectorId(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); ConnectorMetadata metadata = catalogMetadata.get().getMetadataFor(connectorId); return metadata.listRoles(connectorSession).stream() .map(role -> role.toLowerCase(ENGLISH)) .collect(toImmutableSet()); }
@Override public List<String> listSchemaNames(Session session, String catalogName) { Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, catalogName); ImmutableSet.Builder<String> schemaNames = ImmutableSet.builder(); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); ConnectorSession connectorSession = session.toConnectorSession(catalogMetadata.getConnectorId()); for (ConnectorId connectorId : catalogMetadata.listConnectorIds()) { ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); metadata.listSchemaNames(connectorSession).stream() .map(schema -> schema.toLowerCase(Locale.ENGLISH)) .forEach(schemaNames::add); } } return ImmutableList.copyOf(schemaNames.build()); }
@Override public boolean schemaExists(Session session, CatalogSchemaName schema) { Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, schema.getCatalogName()); if (!catalog.isPresent()) { return false; } CatalogMetadata catalogMetadata = catalog.get(); ConnectorSession connectorSession = session.toConnectorSession(catalogMetadata.getConnectorId()); return catalogMetadata.listConnectorIds().stream() .map(catalogMetadata::getMetadataFor) .anyMatch(metadata -> metadata.schemaExists(connectorSession, schema.getSchemaName())); }
@Override public boolean schemaExists(Session session, CatalogSchemaName schema) { Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, schema.getCatalogName()); if (!catalog.isPresent()) { return false; } CatalogMetadata catalogMetadata = catalog.get(); ConnectorSession connectorSession = session.toConnectorSession(catalogMetadata.getConnectorId()); return catalogMetadata.listConnectorIds().stream() .map(catalogMetadata::getMetadataFor) .anyMatch(metadata -> metadata.schemaExists(connectorSession, schema.getSchemaName())); }
@Override public Optional<SystemTable> getSystemTable(Session session, QualifiedObjectName tableName) { requireNonNull(session, "session is null"); requireNonNull(tableName, "table is null"); Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, tableName.getCatalogName()); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); // we query only main connector for runtime system tables ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); return metadata.getSystemTable(session.toConnectorSession(connectorId), tableName.asSchemaTableName()); } return Optional.empty(); }
@Override public Optional<SystemTable> getSystemTable(Session session, QualifiedObjectName tableName) { requireNonNull(session, "session is null"); requireNonNull(tableName, "table is null"); Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, tableName.getCatalogName()); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); // we query only main connector for runtime system tables ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); return metadata.getSystemTable(session.toConnectorSession(connectorId), tableName.asSchemaTableName()); } return Optional.empty(); }
@Override public Optional<TableHandle> getTableHandle(Session session, QualifiedObjectName table) { requireNonNull(table, "table is null"); Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, table.getCatalogName()); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); ConnectorId connectorId = catalogMetadata.getConnectorId(session, table); ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); ConnectorTableHandle tableHandle = metadata.getTableHandle(session.toConnectorSession(connectorId), table.asSchemaTableName()); if (tableHandle != null) { return Optional.of(new TableHandle(connectorId, tableHandle)); } } return Optional.empty(); }
@Override public Optional<TableHandle> getTableHandleForStatisticsCollection(Session session, QualifiedObjectName table, Map<String, Object> analyzeProperties) { requireNonNull(table, "table is null"); Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, table.getCatalogName()); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); ConnectorId connectorId = catalogMetadata.getConnectorId(session, table); ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); ConnectorTableHandle tableHandle = metadata.getTableHandleForStatisticsCollection(session.toConnectorSession(connectorId), table.asSchemaTableName(), analyzeProperties); if (tableHandle != null) { return Optional.of(new TableHandle(connectorId, tableHandle)); } } return Optional.empty(); }
@Override public Optional<TableHandle> getTableHandleForStatisticsCollection(Session session, QualifiedObjectName table, Map<String, Object> analyzeProperties) { requireNonNull(table, "table is null"); Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, table.getCatalogName()); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); ConnectorId connectorId = catalogMetadata.getConnectorId(session, table); ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); ConnectorTableHandle tableHandle = metadata.getTableHandleForStatisticsCollection(session.toConnectorSession(connectorId), table.asSchemaTableName(), analyzeProperties); if (tableHandle != null) { return Optional.of(new TableHandle(connectorId, tableHandle)); } } return Optional.empty(); }
@Override public Optional<TableHandle> getTableHandle(Session session, QualifiedObjectName table) { requireNonNull(table, "table is null"); Optional<CatalogMetadata> catalog = getOptionalCatalogMetadata(session, table.getCatalogName()); if (catalog.isPresent()) { CatalogMetadata catalogMetadata = catalog.get(); ConnectorId connectorId = catalogMetadata.getConnectorId(session, table); ConnectorMetadata metadata = catalogMetadata.getMetadataFor(connectorId); ConnectorTableHandle tableHandle = metadata.getTableHandle(session.toConnectorSession(connectorId), table.asSchemaTableName()); if (tableHandle != null) { return Optional.of(new TableHandle(connectorId, tableHandle)); } } return Optional.empty(); }