Exemple #1
0
 protected virtual void InitialiseIterator()
 {
     if (this.CondIndex == 0)
     {
         this.HasLeftOuterRow = base.RangeVar.IsLeftJoin;
     }
     if (this.Conditions[this.CondIndex].IsFalse)
     {
         base.It = this.Conditions[this.CondIndex].RangeIndex.GetEmptyIterator();
     }
     else
     {
         SubQuery subQuery = base.RangeVar.RangeTable.GetSubQuery();
         if (subQuery != null)
         {
             subQuery.MaterialiseCorrelated(base.session);
         }
         if (this.Conditions[this.CondIndex].IndexCond == null)
         {
             base.It = this.Conditions[this.CondIndex].Reversed ? this.Conditions[this.CondIndex].RangeIndex.LastRow(base.session, base.Store) : this.Conditions[this.CondIndex].RangeIndex.FirstRow(base.session, base.Store);
         }
         else
         {
             this.GetFirstRow();
             if (!this.Conditions[this.CondIndex].IsJoin)
             {
                 this.HasLeftOuterRow = false;
             }
         }
     }
 }