@Override public boolean tableExists(Session session, String table) { lock.readLock().lock(); try { return transaction(transactionManager, accessControl) .readOnly() .execute(session, transactionSession -> { return MetadataUtil.tableExists(getMetadata(), transactionSession, table); }); } finally { lock.readLock().unlock(); } }
public QualifiedTablePrefix(String catalogName, String schemaName, String tableName) { this.catalogName = checkCatalogName(catalogName); this.schemaName = Optional.of(checkSchemaName(schemaName)); this.tableName = Optional.of(checkTableName(tableName)); }
public static void checkObjectName(String catalogName, String schemaName, String objectName) { checkLowerCase(catalogName, "catalogName"); checkLowerCase(schemaName, "schemaName"); checkLowerCase(objectName, "objectName"); }
public QualifiedTablePrefix(String catalogName, String schemaName) { this.catalogName = checkCatalogName(catalogName); this.schemaName = Optional.of(checkSchemaName(schemaName)); this.tableName = Optional.empty(); }
public static void checkTableName(String catalogName, Optional<String> schemaName, Optional<String> tableName) { checkCatalogName(catalogName); schemaName.ifPresent(name -> checkLowerCase(name, "schemaName")); tableName.ifPresent(name -> checkLowerCase(name, "tableName")); checkArgument(schemaName.isPresent() || !tableName.isPresent(), "tableName specified but schemaName is missing"); }
private TableHandle getTableHandle(ShowStats node, QualifiedName table) { QualifiedObjectName qualifiedTableName = createQualifiedObjectName(session, node, table); return metadata.getTableHandle(session, qualifiedTableName) .orElseThrow(() -> new SemanticException(MISSING_TABLE, node, "Table %s not found", table)); }
@JsonCreator public SystemTableHandle( @JsonProperty("connectorId") ConnectorId connectorId, @JsonProperty("schemaName") String schemaName, @JsonProperty("tableName") String tableName) { this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.schemaName = checkSchemaName(schemaName); this.tableName = checkTableName(tableName); }
@Override public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle) { InformationSchemaTableHandle informationSchemaTableHandle = checkTableHandle(tableHandle); ConnectorTableMetadata tableMetadata = TABLES.get(informationSchemaTableHandle.getSchemaTableName()); String columnName = ((InformationSchemaColumnHandle) columnHandle).getColumnName(); ColumnMetadata columnMetadata = findColumnMetadata(tableMetadata, columnName); checkArgument(columnMetadata != null, "Column %s on table %s does not exist", columnName, tableMetadata.getTable()); return columnMetadata; }
public QualifiedTablePrefix(String catalogName) { this.catalogName = checkCatalogName(catalogName); this.schemaName = Optional.empty(); this.tableName = Optional.empty(); }
@Override protected Node visitShowCreate(ShowCreate node, Void context) QualifiedObjectName objectName = createQualifiedObjectName(session, node, node.getName()); Optional<ViewDefinition> viewDefinition = metadata.getView(session, objectName); String sql = formatSql(new CreateView(createQualifiedName(objectName), query, false), Optional.of(parameters)).trim(); return singleValueQuery("Create View", sql);
public QualifiedObjectName(String catalogName, String schemaName, String objectName) { checkObjectName(catalogName, schemaName, objectName); this.catalogName = catalogName; this.schemaName = schemaName; this.objectName = objectName; }
@JsonCreator public QualifiedTablePrefix( @JsonProperty("catalogName") String catalogName, @JsonProperty("schemaName") Optional<String> schemaName, @JsonProperty("tableName") Optional<String> tableName) { checkTableName(catalogName, schemaName, tableName); this.catalogName = catalogName; this.schemaName = schemaName; this.tableName = tableName; }
@Override public ListenableFuture<?> execute(DropSchema statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, QueryStateMachine stateMachine, List<Expression> parameters) { if (statement.isCascade()) { throw new PrestoException(NOT_SUPPORTED, "CASCADE is not yet supported for DROP SCHEMA"); } Session session = stateMachine.getSession(); CatalogSchemaName schema = createCatalogSchemaName(session, statement, Optional.of(statement.getSchemaName())); if (!metadata.schemaExists(session, schema)) { if (!statement.isExists()) { throw new SemanticException(MISSING_SCHEMA, statement, "Schema '%s' does not exist", schema); } return immediateFuture(null); } accessControl.checkCanDropSchema(session.getRequiredTransactionId(), session.getIdentity(), schema); metadata.dropSchema(session, schema); return immediateFuture(null); } }
@Override public ListenableFuture<?> execute(DropTable statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, QueryStateMachine stateMachine, List<Expression> parameters) { Session session = stateMachine.getSession(); QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getTableName()); Optional<TableHandle> tableHandle = metadata.getTableHandle(session, tableName); if (!tableHandle.isPresent()) { if (!statement.isExists()) { throw new SemanticException(MISSING_TABLE, statement, "Table '%s' does not exist", tableName); } return immediateFuture(null); } accessControl.checkCanDropTable(session.getRequiredTransactionId(), session.getIdentity(), tableName); metadata.dropTable(session, tableHandle.get()); return immediateFuture(null); } }
public QualifiedTablePrefix(String catalogName, String schemaName) { this.catalogName = checkCatalogName(catalogName); this.schemaName = Optional.of(checkSchemaName(schemaName)); this.tableName = Optional.empty(); }
@JsonCreator public SystemTableHandle( @JsonProperty("connectorId") String connectorId, @JsonProperty("schemaName") String schemaName, @JsonProperty("tableName") String tableName) { this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.schemaName = checkSchemaName(schemaName); this.tableName = checkTableName(tableName); }
@Override public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle) { ConnectorTableMetadata tableMetadata = checkAndGetTable(session, tableHandle).getTableMetadata(); String columnName = ((SystemColumnHandle) columnHandle).getColumnName(); ColumnMetadata columnMetadata = findColumnMetadata(tableMetadata, columnName); checkArgument(columnMetadata != null, "Column %s on table %s does not exist", columnName, tableMetadata.getTable()); return columnMetadata; }
public Catalog( String catalogName, ConnectorId connectorId, Connector connector, ConnectorId informationSchemaId, Connector informationSchema, ConnectorId systemTablesId, Connector systemTables) { this.catalogName = checkCatalogName(catalogName); this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.connector = requireNonNull(connector, "connector is null"); this.informationSchemaId = requireNonNull(informationSchemaId, "informationSchemaId is null"); this.informationSchema = requireNonNull(informationSchema, "informationSchema is null"); this.systemTablesId = requireNonNull(systemTablesId, "systemTablesId is null"); this.systemTables = requireNonNull(systemTables, "systemTables is null"); }
public QualifiedObjectName(String catalogName, String schemaName, String objectName) { checkObjectName(catalogName, schemaName, objectName); this.catalogName = catalogName; this.schemaName = schemaName; this.objectName = objectName; }
public QualifiedTablePrefix(String catalogName, Optional<String> schemaName, Optional<String> tableName) { checkTableName(catalogName, schemaName, tableName); this.catalogName = catalogName; this.schemaName = schemaName; this.tableName = tableName; }