@Override public Void visit(DataverseDropStatement del, Integer step) throws CompilationException { out.print(skip(step) + "drop " + dataverseSymbol); out.print(normalize(del.getDataverseName().getValue())); out.println(generateIfExists(del.getIfExists()) + SEMICOLON); return null; }
protected void handleDataverseDropStatement(MetadataProvider metadataProvider, Statement stmt, IHyracksClientConnection hcc, IRequestParameters requestParameters) throws Exception { DataverseDropStatement stmtDelete = (DataverseDropStatement) stmt; SourceLocation sourceLoc = stmtDelete.getSourceLocation(); String dataverseName = stmtDelete.getDataverseName().getValue(); if (dataverseName.equals(MetadataBuiltinEntities.DEFAULT_DATAVERSE_NAME)) { throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc, MetadataBuiltinEntities.DEFAULT_DATAVERSE_NAME + " dataverse can't be dropped"); } lockManager.acquireDataverseWriteLock(metadataProvider.getLocks(), dataverseName); try { doDropDataverse(stmtDelete, sourceLoc, metadataProvider, hcc); } finally { metadataProvider.getLocks().unlock(); ExternalDatasetsRegistry.INSTANCE.releaseAcquiredLocks(metadataProvider); } }
id = Identifier(); ifExists = IfExists(); stmt = new DataverseDropStatement(new Identifier(id), ifExists); break; case FUNCTION:
DataverseDropStatement dvDropStmt = (DataverseDropStatement) stmt; invalidOperation = MetadataConstants.METADATA_DATAVERSE_NAME.equals(dvDropStmt.getDataverseName().getValue()); if (invalidOperation) { message = "Cannot drop dataverse:" + dvDropStmt.getDataverseName().getValue();
id = Identifier(); ifExists = IfExists(); stmt = new DataverseDropStatement(new Identifier(id), ifExists); break; case FUNCTION:
protected boolean doDropDataverse(DataverseDropStatement stmtDelete, SourceLocation sourceLoc, MetadataProvider metadataProvider, IHyracksClientConnection hcc) throws Exception { String dataverseName = stmtDelete.getDataverseName().getValue(); ProgressState progress = ProgressState.NO_PROGRESS; MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dataverseName); if (dv == null) { if (stmtDelete.getIfExists()) { MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); return false;
id = Identifier(); ifExists = IfExists(); stmt = new DataverseDropStatement(new Identifier(id), ifExists); break; case FUNCTION: