@Override public TableStatisticsMetadata getStatisticsCollectionMetadata(Session session, String catalogName, ConnectorTableMetadata tableMetadata) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorId connectorId = catalogMetadata.getConnectorId(); return metadata.getStatisticsCollectionMetadata(session.toConnectorSession(connectorId), tableMetadata); }
@Override public void createRole(Session session, String role, Optional<PrestoPrincipal> grantor, String catalog) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalog); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.createRole(session.toConnectorSession(connectorId), role, grantor); }
@Override public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, String catalogName, ConnectorTableMetadata tableMetadata) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorId connectorId = catalogMetadata.getConnectorId(); return metadata.getStatisticsCollectionMetadataForWrite(session.toConnectorSession(connectorId), tableMetadata); }
@Override public TableStatisticsMetadata getStatisticsCollectionMetadata(Session session, String catalogName, ConnectorTableMetadata tableMetadata) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorId connectorId = catalogMetadata.getConnectorId(); return metadata.getStatisticsCollectionMetadata(session.toConnectorSession(connectorId), tableMetadata); }
@Override public void createRole(Session session, String role, Optional<PrestoPrincipal> grantor, String catalog) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalog); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.createRole(session.toConnectorSession(connectorId), role, grantor); }
@Override public void dropRole(Session session, String role, String catalog) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalog); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.dropRole(session.toConnectorSession(connectorId), role); }
@Override public void grantRoles(Session session, Set<String> roles, Set<PrestoPrincipal> grantees, boolean withAdminOption, Optional<PrestoPrincipal> grantor, String catalog) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalog); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.grantRoles(session.toConnectorSession(connectorId), roles, grantees, withAdminOption, grantor); }
@Override public void revokeRoles(Session session, Set<String> roles, Set<PrestoPrincipal> grantees, boolean adminOptionFor, Optional<PrestoPrincipal> grantor, String catalog) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalog); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.revokeRoles(session.toConnectorSession(connectorId), roles, grantees, adminOptionFor, grantor); }
@Override public Optional<NewTableLayout> getNewTableLayout(Session session, String catalogName, ConnectorTableMetadata tableMetadata) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorTransactionHandle transactionHandle = catalogMetadata.getTransactionHandleFor(connectorId); ConnectorSession connectorSession = session.toConnectorSession(connectorId); return metadata.getNewTableLayout(connectorSession, tableMetadata) .map(layout -> new NewTableLayout(connectorId, transactionHandle, layout)); }
@Override public Optional<NewTableLayout> getInsertLayout(Session session, TableHandle table) { ConnectorId connectorId = table.getConnectorId(); CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, connectorId); ConnectorMetadata metadata = catalogMetadata.getMetadata(); return metadata.getInsertLayout(session.toConnectorSession(connectorId), table.getConnectorHandle()) .map(layout -> new NewTableLayout(connectorId, catalogMetadata.getTransactionHandleFor(connectorId), layout)); }
@Override public void renameSchema(Session session, CatalogSchemaName source, String target) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, source.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.renameSchema(session.toConnectorSession(connectorId), source.getSchemaName(), target); }
@Override public void grantTablePrivileges(Session session, QualifiedObjectName tableName, Set<Privilege> privileges, PrestoPrincipal grantee, boolean grantOption) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, tableName.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.grantTablePrivileges(session.toConnectorSession(connectorId), tableName.asSchemaTableName(), privileges, grantee, grantOption); }
@Override public void revokeTablePrivileges(Session session, QualifiedObjectName tableName, Set<Privilege> privileges, PrestoPrincipal grantee, boolean grantOption) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, tableName.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.revokeTablePrivileges(session.toConnectorSession(connectorId), tableName.asSchemaTableName(), privileges, grantee, grantOption); }
@Override public void dropSchema(Session session, CatalogSchemaName schema) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, schema.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.dropSchema(session.toConnectorSession(connectorId), schema.getSchemaName()); }
@Override public void createView(Session session, QualifiedObjectName viewName, String viewData, boolean replace) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, viewName.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.createView(session.toConnectorSession(connectorId), viewName.asSchemaTableName(), viewData, replace); }
@Override public void createSchema(Session session, CatalogSchemaName schema, Map<String, Object> properties) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, schema.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.createSchema(session.toConnectorSession(connectorId), schema.getSchemaName(), properties); }
@Override public void revokeTablePrivileges(Session session, QualifiedObjectName tableName, Set<Privilege> privileges, PrestoPrincipal grantee, boolean grantOption) { CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, tableName.getCatalogName()); ConnectorId connectorId = catalogMetadata.getConnectorId(); ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.revokeTablePrivileges(session.toConnectorSession(connectorId), tableName.asSchemaTableName(), privileges, grantee, grantOption); }
@Override public AnalyzeTableHandle beginStatisticsCollection(Session session, TableHandle tableHandle) { ConnectorId connectorId = tableHandle.getConnectorId(); CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, connectorId); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorTransactionHandle transactionHandle = catalogMetadata.getTransactionHandleFor(connectorId); ConnectorTableHandle connectorTableHandle = metadata.beginStatisticsCollection(session.toConnectorSession(connectorId), tableHandle.getConnectorHandle()); return new AnalyzeTableHandle(connectorId, transactionHandle, connectorTableHandle); }
@Override public void renameTable(Session session, TableHandle tableHandle, QualifiedObjectName newTableName) { String catalogName = newTableName.getCatalogName(); CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName); ConnectorId connectorId = catalogMetadata.getConnectorId(); if (!tableHandle.getConnectorId().equals(connectorId)) { throw new PrestoException(SYNTAX_ERROR, "Cannot rename tables across catalogs"); } ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.renameTable(session.toConnectorSession(connectorId), tableHandle.getConnectorHandle(), newTableName.asSchemaTableName()); }
@Override public void renameTable(Session session, TableHandle tableHandle, QualifiedObjectName newTableName) { String catalogName = newTableName.getCatalogName(); CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName); ConnectorId connectorId = catalogMetadata.getConnectorId(); if (!tableHandle.getConnectorId().equals(connectorId)) { throw new PrestoException(SYNTAX_ERROR, "Cannot rename tables across catalogs"); } ConnectorMetadata metadata = catalogMetadata.getMetadata(); metadata.renameTable(session.toConnectorSession(connectorId), tableHandle.getConnectorHandle(), newTableName.asSchemaTableName()); }