Exemplo n.º 1
0
        public override void IntersectAll(RowSetNavigatorData other)
        {
            object[] b = null;
            this.SortFull();
            this.Reset();
            other.SortFull();
            IRowIterator emptyIterator = this._fullIndex.GetEmptyIterator();

            while (base.HasNext())
            {
                object[] next = base.GetNext();
                if ((b == null) || (this._fullIndex.CompareRowNonUnique(this._session, next, b, this._fullIndex.GetColumnCount()) > 0))
                {
                    b             = next;
                    emptyIterator = other.FindFirstRow(next);
                }
                Row      nextRow   = emptyIterator.GetNextRow();
                object[] objArray3 = (nextRow == null) ? null : nextRow.RowData;
                if ((objArray3 == null) || (this._fullIndex.CompareRowNonUnique(this._session, next, objArray3, this._fullIndex.GetColumnCount()) != 0))
                {
                    this.Remove();
                }
            }
            other.Close();
        }
Exemplo n.º 2
0
 public virtual void Intersect(RowSetNavigatorData other)
 {
     this.RemoveDuplicates();
     other.SortFull();
     while (base.HasNext())
     {
         object[] next = base.GetNext();
         if (!other.ContainsRow(next))
         {
             this.Remove();
         }
     }
     other.Close();
     this.Reset();
 }
Exemplo n.º 3
0
 public override void Except(RowSetNavigatorData other)
 {
     this.RemoveDuplicates();
     this.Reset();
     other.SortFull();
     while (base.HasNext())
     {
         object[] next = base.GetNext();
         if (other.ContainsRow(next))
         {
             this.Remove();
         }
     }
     other.Close();
 }
Exemplo n.º 4
0
        public virtual void IntersectAll(RowSetNavigatorData other)
        {
            object[] b = null;
            this.SortFull();
            other.SortFull();
            IRowIterator emptyIterator = this._queryExpression.FullIndex.GetEmptyIterator();

            while (base.HasNext())
            {
                object[] next = base.GetNext();
                if ((b == null) || (this._queryExpression.FullIndex.CompareRowNonUnique((Session)base.session, next, b, this._visibleColumnCount) > 0))
                {
                    b             = next;
                    emptyIterator = other.FindFirstRow(next);
                }
                object[] objArray3 = emptyIterator.GetNext();
                if ((objArray3 == null) || (this._queryExpression.FullIndex.CompareRowNonUnique((Session)base.session, next, objArray3, this._visibleColumnCount) != 0))
                {
                    this.Remove();
                }
            }
            other.Close();
            this.Reset();
        }