1 package com.daffodilwoods.daffodildb.server.sql99.dql.plan.table; 2 3 import com.daffodilwoods.daffodildb.server.serversystem.*; 4 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 5 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.table.*; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.*; 7 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 8 import com.daffodilwoods.database.resource.*; 9 10 21 22 public class NaturalFullJoinPlan extends QualifiedFullPlan { 23 24 27 28 private Object [][] commonColumns; 29 30 public NaturalFullJoinPlan(_TablePlan tablePlanLeft0, 31 _TablePlan tablePlanRight0, 32 booleanvalueexpression onCondition, 33 _QualifiedPlan qualifiedLeftPlan, 34 _ServerSession session, Object [][] commonColumns0) throws DException { 35 super(tablePlanLeft0, tablePlanRight0, onCondition, qualifiedLeftPlan, 36 session); 37 commonColumns = commonColumns0; 38 } 39 40 51 52 public _Iterator execute(_ServerSession session) throws DException { 53 _Iterator iter1 = tablePlanLeft.execute(session); 54 _Iterator iter2 = tablePlanRight.execute(session); 55 return new NaturalFullJoinUnionIterator(super.qualifiedLeftTablePlan.execute(session), new SpecialRightJoinIterator(iter1, iter2, joinCondition, iter1.getKeyColumnInformations(), iter2.getKeyColumnInformations(), null, session), commonColumns); 56 } 57 58 65 66 public _Iterator executeWithoutOrder(_ServerSession session) throws DException { 67 _Iterator iter1 = tablePlanLeft.executeWithoutOrder(session); 68 _Iterator iter2 = tablePlanRight.executeWithoutOrder(session); 69 return new NaturalFullJoinUnionIterator(super.qualifiedLeftTablePlan.executeWithoutOrder(session), new SpecialRightJoinIterator(iter1, iter2, joinCondition, iter1.getKeyColumnInformations(), iter2.getKeyColumnInformations(), null, session), commonColumns); 70 } 71 } 72 | Popular Tags |