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.sql99.dql.iterator.*; 7 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 8 import com.daffodilwoods.database.resource.*; 9 import com.daffodilwoods.database.utility.*; 10 11 16 public class RestrictReferencedExecuter extends ReferencedExecuter { 17 18 26 public RestrictReferencedExecuter( _ReferentialConstraint referencedConstraint, _ServerSession globalSess ) throws DException { 27 globalSession = globalSess; 28 setVariables( referencedConstraint ); 29 } 30 31 36 public void checkReferencedConstraints( _StatementExecutionContext sec ) throws DException { 37 populateMatchingIterator(); 38 for( int i=0; i<sub_superTable.size(); i++ ) 39 matching_RESTRICT( i , sec ); 40 } 41 42 48 private void matching_RESTRICT( int tableIndex , _StatementExecutionContext sec ) throws DException { 49 ConstraintStore constraintStore = (ConstraintStore)matchingRowsPool.get(tableIndex) ; 50 RecordVersion recordVersion = sec.getRecordVersion(); 51 _Iterator iterator = constraintStore.getIterator(); 52 booleanvalueexpression bve = constraintStore.getCondition(); 53 setParameterValues(iterator,bve,recordVersion.getPreviousRecord()); 54 if( iterator == null || iterator.first() ) { 55 ; P.showIterator( iterator ); 57 throw new DException( "DSE1278",new Object []{ referencedTable.getName() } ); 58 } 59 } 60 } 61 | Popular Tags |