1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqltransactionstatement; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.serversystem.*; 6 import com.daffodilwoods.daffodildb.server.sessionsystem.*; 7 import com.daffodilwoods.daffodildb.server.sql99.token.*; 8 import com.daffodilwoods.database.resource.*; 9 10 public class rollbackstatement implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, 11 SQLtransactionstatement { 12 public savepointclause _Optsavepointclause0; 13 public 14 SRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD136444255 15 _OptSRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD1364442551; 16 public SRESERVEDWORD1206543922 _OptSRESERVEDWORD12065439222; 17 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223; 18 19 ArrayList userSavepointVector; 20 21 int returnType = 0; 22 public Object run(Object object) throws com.daffodilwoods.database.resource.DException { 23 _ServerSession serverSession = (_ServerSession) object; 24 _UserSession userSession = serverSession.getUserSession(); 25 userSavepointVector = userSession.getSavePointVector(); 26 if ( ( (String ) userSession.getTransactionAccessMode()).equalsIgnoreCase("Read Only")) { 27 throw new DException("DSE1184", (Object [])null); 28 } 29 30 int level = 0; 31 _StatementExecutionContext sec = serverSession.getStatementExecutionContext(); 32 if (_Optsavepointclause0 != null) { 33 Object savepoint = _Optsavepointclause0.run(object); 34 int index = userSavepointVector.indexOf( ( (String ) savepoint).toUpperCase()); 35 if (index < 0) { 36 throw new DException("DSE877", null); 37 } 38 CommitToParentAndRollback(userSession, sec, userSavepointVector.size() - index); 39 userSession.rollbackSavePoint(sec); 40 userSession.releaseLastSavePoint(); 41 } else { 42 CommitToParentAndRollback(userSession, serverSession.getStatementExecutionContext(), userSavepointVector.size() + 1); 43 userSession.rollback(sec); 44 } 45 return null; 46 } 47 48 public void CommitToParentAndRollback(_UserSession userSession, _StatementExecutionContext sec, int level) throws com.daffodilwoods.database.resource.DException { 49 for (int i = 0; i < level - 1; i++) { 50 userSession.commitSavePoint(sec); 51 userSession.releaseLastSavePoint(); 52 } 53 } 54 55 public String toString() { 56 StringBuffer sb = new StringBuffer (); 57 sb.append(" "); 58 sb.append(_SRESERVEDWORD12065439223); 59 sb.append(" "); 60 if (_OptSRESERVEDWORD12065439222 != null) { 61 sb.append(_OptSRESERVEDWORD12065439222); 62 } 63 sb.append(" "); 64 if (_OptSRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD1364442551 != null) { 65 sb.append(_OptSRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD1364442551); 66 } 67 sb.append(" "); 68 if (_Optsavepointclause0 != null) { 69 sb.append(_Optsavepointclause0); 70 } 71 return sb.toString(); 72 } 73 74 public Object clone() throws CloneNotSupportedException { 75 return this; 76 } 77 78 } 79 | Popular Tags |