1 package com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.constraintsystem; 2 3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*; 4 import com.daffodilwoods.daffodildb.server.datasystem.utility.*; 5 import com.daffodilwoods.daffodildb.server.serversystem.*; 6 import com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition.*; 7 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 8 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 9 import com.daffodilwoods.database.general.*; 10 import com.daffodilwoods.database.resource.*; 11 12 17 18 public class SetNullReferencedExecuter extends ReferencedExecuter { 19 20 29 public SetNullReferencedExecuter( _ReferentialConstraint referencedConstraint, _ServerSession globalSess ) throws DException { 30 globalSession = globalSess; 31 setVariables( referencedConstraint ); 32 } 33 34 40 public void checkReferencedConstraints( _StatementExecutionContext sec ) throws DException { 41 populateMatchingIterator(); 42 for( int i=0; i< matchingRowsPool.size(); i++ ) 43 matching_SETNULL( i , sec ); 44 } 45 46 51 private void matching_SETNULL( int tableIndex, _StatementExecutionContext statementExecutionContext ) throws DException { 52 ConstraintStore constraintStore = (ConstraintStore)matchingRowsPool.get(tableIndex); 53 RecordVersion recordVersion = statementExecutionContext.getRecordVersion(); 54 _Iterator iterator = constraintStore.getIterator(); 55 booleanvalueexpression bve = constraintStore.getCondition(); 56 setParameterValues( iterator , bve , recordVersion.getPreviousRecord() ); 57 if(iterator.last()){ 58 _ServerTable serverTable = statementExecutionContext.getServerTable( (QualifiedIdentifier)sub_superTable.get(tableIndex) ); 59 do { 60 int[] column = new int[ referencingColumns.length ]; 61 Object [] values = new Object [ referencingColumns.length ]; 62 for( int i=0; i<referencingColumns.length; i++ ) { 63 column[i] = referencingColumns[i]; 64 values[i] = null ; 65 } 66 67 serverTable.update( iterator , column , values , statementExecutionContext ); 68 }while( iterator.previous() ) ; 69 } 70 } 71 72 } 73 | Popular Tags |