Result getResult(Session paramSession) { HsqlNameManager.HsqlName localHsqlName1 = this.statements[0].getSchemaName(); if (this.isExplain) return Result.newSingleColumnStringResult("OPERATION", describe(paramSession)); Result localResult = this.statements[0].execute(paramSession); HsqlArrayList localHsqlArrayList = new HsqlArrayList(); StatementSchema localStatementSchema2 = new StatementSchema(null, 1199); if ((this.statements.length == 1) || (localResult.isError())) return localResult; HsqlNameManager.HsqlName localHsqlName2 = paramSession.getCurrentSchemaHsqlName(); Table localTable; for (int i = 1; i < this.statements.length; i++) { try { paramSession.setSchema(localHsqlName1.name); } catch (HsqlException localHsqlException3) { } this.statements[i].setSchemaHsqlName(localHsqlName1); paramSession.parser.reset(this.statements[i].getSQL()); try { paramSession.parser.read(); StatementSchema localStatementSchema1; switch (this.statements[i].getType()) { case 48: case 49: localResult = this.statements[i].execute(paramSession); break; case 77: localStatementSchema1 = paramSession.parser.compileCreate(); localStatementSchema1.isSchemaDefinition = true; localStatementSchema1.setSchemaHsqlName(localHsqlName1); if (paramSession.parser.token.tokenType != 848) throw paramSession.parser.unexpectedToken(); localStatementSchema1.isLogged = false; localResult = localStatementSchema1.execute(paramSession); HsqlNameManager.HsqlName localHsqlName3 = ((Table) localStatementSchema1.arguments[0]).getName(); localTable = (Table) paramSession.database.schemaManager.getSchemaObject(localHsqlName3); localHsqlArrayList.addAll((HsqlArrayList) localStatementSchema1.arguments[1]); ((HsqlArrayList) localStatementSchema1.arguments[1]).clear(); localStatementSchema2.sql = localTable.getSQL(); localStatementSchema2.execute(paramSession); break; case 8: case 10: case 61: case 83: case 133: localResult = this.statements[i].execute(paramSession); break; case 14: case 23: case 80: case 84: case 1073: localStatementSchema1 = paramSession.parser.compileCreate(); localStatementSchema1.isSchemaDefinition = true; localStatementSchema1.setSchemaHsqlName(localHsqlName1); if (paramSession.parser.token.tokenType != 848) throw paramSession.parser.unexpectedToken(); localResult = localStatementSchema1.execute(paramSession); break; case 6: case 52: case 79: case 114: case 117: throw paramSession.parser.unsupportedFeature(); default: throw Error.runtimeError(201, ""); } if (localResult.isError()) break; } catch (HsqlException localHsqlException4) { localResult = Result.newErrorResult(localHsqlException4, this.statements[i].getSQL()); break; } } if (!localResult.isError()) try { for (i = 0; i < localHsqlArrayList.size(); i++) { Constraint localConstraint = (Constraint) localHsqlArrayList.get(i); localTable = paramSession.database.schemaManager.getUserTable( paramSession, localConstraint.core.refTableName); ParserDDL.addForeignKey(paramSession, localTable, localConstraint, null); localStatementSchema2.sql = localConstraint.getSQL(); localStatementSchema2.execute(paramSession); } } catch (HsqlException localHsqlException1) { localResult = Result.newErrorResult(localHsqlException1, this.sql); } if (localResult.isError()) try { paramSession.database.schemaManager.dropSchema(paramSession, localHsqlName1.name, true); paramSession.database.logger.writeOtherStatement( paramSession, getDropSchemaStatement(localHsqlName1)); } catch (HsqlException localHsqlException2) { } paramSession.setCurrentSchemaHsqlName(localHsqlName2); return localResult; }