1 package com.daffodilwoods.daffodildb.server.sessionsystem; 2 3 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 4 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails; 5 import com.daffodilwoods.database.resource.DException; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.execution._OrderCount; 7 import com.daffodilwoods.daffodildb.server.sql99.common.TableDetails; 8 import com.daffodilwoods.database.sqlinitiator._Order; 9 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 10 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 11 import com.daffodilwoods.daffodildb.server.sql99.utils._IndexPredicate; 12 import com.daffodilwoods.daffodildb.server.sql99.common._KeyColumnInformation; 13 import com.daffodilwoods.daffodildb.server.datasystem.utility._Record; 14 import com.daffodilwoods.daffodildb.client._ExecutionPlan; 15 import com.daffodilwoods.daffodildb.server.sql99.common.ExecutionPlanForBrowser; 16 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.booleanvalueexpression; 17 import java.lang.ref.WeakReference ; 18 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 19 import com.daffodilwoods.database.general.QualifiedIdentifier; 20 21 public class ForUpdateIterator extends CommitedSessionIterator { 22 23 booleanvalueexpression bve; 24 ForUpdateTableHandler forUpdateTH; 25 Object sessionId; 26 _Reference[] references; 27 WeakReference serverSession; 28 29 public ForUpdateIterator( _Iterator iteratorMemory0, _Iterator iteratorUser0,SessionDatabase sessionDatabase0, boolean questionMarksNotFound0, booleanvalueexpression bve0, 30 ForUpdateTableHandler forUpdateTH0, Object sessionId0, _Reference[] references0, WeakReference serverSession0,_ServerSession serverSession1,QualifiedIdentifier tableName0) throws DException{ 31 super(iteratorMemory0,iteratorUser0,sessionDatabase0,questionMarksNotFound0,serverSession1,tableName0,true); 32 bve = bve0; 33 forUpdateTH = forUpdateTH0; 34 sessionId = sessionId0; 35 references = references0; 36 serverSession = serverSession0; 37 } 38 39 40 public void setConditionVariableValue(_Reference[] references, Object [] values, int priority) throws DException { 41 super.setConditionVariableValue(references, values, priority); 42 if(!questionMarkNotFound && checkReferences(references)) { 43 forUpdateTH.addForUpdateVariableValues(sessionId, new ConditionReferenceValues( bve, references, values ), serverSession); 44 } 45 } 46 47 public boolean checkReferences(_Reference[] refs0) { 48 boolean found = false; 49 for (int i = 0; i < refs0.length; i++) { 50 for (int j = 0; j < references.length; j++) { 51 if(refs0[i] == references[j]){ 52 found = true; 53 break; 54 } 55 } 56 if(!found) 57 return false; 58 } 59 return true; 60 } 61 } 62 | Popular Tags |