| 1 package com.daffodilwoods.daffodildb.server.sql99.dml; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*; 6 import com.daffodilwoods.daffodildb.server.datasystem.utility.*; 7 import com.daffodilwoods.daffodildb.server.datasystem.utility._Record; 8 import com.daffodilwoods.daffodildb.server.serversystem.*; 9 import com.daffodilwoods.daffodildb.server.serversystem.datatriggersystem.*; 10 import com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.statementtriggersystem.*; 11 import com.daffodilwoods.daffodildb.server.sessionsystem.*; 12 import com.daffodilwoods.daffodildb.server.sql99.*; 13 import com.daffodilwoods.daffodildb.server.sql99.common.*; 14 import com.daffodilwoods.daffodildb.server.sql99.dml.declarecursor.*; 15 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 16 import com.daffodilwoods.daffodildb.server.sql99.dql.semanticchecker.*; 17 import com.daffodilwoods.daffodildb.server.sql99.token.*; 18 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 19 import com.daffodilwoods.database.general.*; 20 import com.daffodilwoods.database.resource.*; 21 22 public class deletestatementpositioned implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, SQLdatachangestatement, _Executer { 23 24 public cursorname _cursorname0; 25 public targettable _targettable4; 26 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439221; 27 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439222; 28 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223; 29 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439225; 30 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439226; 31 32 _StatementExecutionContext sec = null; 33 QualifiedIdentifier tableName = null; 34 _Cursor cursor = null; 35 _DataTriggerTable dataTriggerTable = null; 36 _StatementTriggerTable statementTriggerTable = null; 37 _Iterator iterator = null; 38 39 public _Reference[] checkSemantic(_ServerSession serverSession) throws DException { 40 TableDetails tableDetails = (TableDetails) _targettable4.run(serverSession); 41 SemanticChecker.initializeCatalogNameAndSchemaNameOfTable(tableDetails, serverSession); 42 _ColumnCharacteristics cc = serverSession.getColumnCharacteristics(tableDetails.getQualifiedIdentifier()); 43 tableDetails.cc = cc; 44 tableDetails.setTableType(cc.getTableType()); 45 46 if (tableDetails.getTableType() == TypeConstants.VIEW) { 47 throw new DmlStatementException("DSE1276", new Object [] {tableDetails.getQualifiedTableName()} 48 , new DException("DSE1267", null)); 49 } 50 cursor = (_Cursor) serverSession.getCursor( (String ) _cursorname0.run(serverSession)); 51 if (!cursor.getUpdatabilityClause()) { 52 throw new DException("DSE1195", null); 53 } 54 return null; 55 } 56 57 public Object run(Object object) throws com.daffodilwoods.database.resource.DException { 58 sec = (_StatementExecutionContext) object; 59 _ServerSession serverSession = sec.getServerSession(); 60 tableName = (QualifiedIdentifier) _targettable4.run(object); 61 ArrayList allQueryTables = new ArrayList(); 62 ( (cursorspecification) cursor.getCursorSpecification())._queryexpression2.getTablesIncluded(allQueryTables); 63 if (!allQueryTables.contains(tableName)) { 64 throw new DException("DSE1196", null); 65 } 66 dataTriggerTable = sec.getDataTriggerTable(tableName); 67 statementTriggerTable = sec.getStatementTriggerTable(tableName); 68 iterator = cursor.getIterator(); 69 return this; 70 } 71 72 public Object execute(_VariableValues parm1) throws com.daffodilwoods.database.resource.DException { 73 _UserSession childUserSession = sec.getUserSession(); 74 boolean createChildSession = false; 75 if (childUserSession == null) { 76 childUserSession = sec.getServerSession().getUserSession(); 77 createChildSession = true; 78 } 79 _TriggerExecutionContext tec = new TriggerExecutionContext(); 80 sec.setUserSession(childUserSession); 81 sec.setTriggerExecutionContext(tec); 82 int count = 0; 83 _Record record = null; 84 try { 85 record = iterator.getRecord(); 86 RecordVersion recordVersion = new RecordVersion(record); 87 sec.setRecordVersion(recordVersion); 88 statementTriggerTable.fireBeforeDeleteStatementLevelTriggers(sec); 89 Object deleteEvent = dataTriggerTable.delete(iterator, sec); 90 statementTriggerTable.fireAfterDeleteStatementLevelTriggers(sec); 91 count++; 92 } catch (DException de) { 93 if (createChildSession) { 94 childUserSession.rollback(sec); 95 } 96 throw de; 97 } 98 if (createChildSession) { 99 childUserSession.commit(sec); 100 } 101 return new Integer (count); 102 } 103 104 public Object execute(Object [] parm1) throws com.daffodilwoods.database.resource.DException { 105 return execute( (_VariableValues)null); 106 } 107 108 public Object executeForFresh(Object [] obj) throws DException { 109 return execute(obj); 110 } 111 112 public Object [] getParameters(Object object) throws DException { 113 throw new DException("DSE388", null); 114 } 115 116 public String toString() { 117 StringBuffer clause = new StringBuffer (); 118 clause.append(" "); 119 clause.append(_SRESERVEDWORD12065439226.toString()); 120 clause.append(" "); 121 clause.append(_SRESERVEDWORD12065439225.toString()); 122 clause.append(" "); 123 clause.append(_targettable4.toString()); 124 clause.append(" "); 125 clause.append(_SRESERVEDWORD12065439223.toString()); 126 clause.append(" "); 127 clause.append(_SRESERVEDWORD12065439222.toString()); 128 clause.append(" "); 129 clause.append(_SRESERVEDWORD12065439221.toString()); 130 clause.append(" "); 131 clause.append(_cursorname0.toString()); 132 return clause.toString().trim(); 133 } 134 135 public _Reference[] getReferences() throws com.daffodilwoods.database.resource.DException { 136 return null; 137 } 138 139 public _Reference[] syntaxChecking(_ServerSession object) throws DException { 140 return null; 141 } 142 143 public Object clone() throws CloneNotSupportedException { 144 return this; 145 } 146 147 public ParameterInfo[] getParameterInfo() throws DException { 148 return null; 149 } 150 } 151 | Popular Tags |