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(); }
public virtual void Copy(RowSetNavigatorData other, int[] rightColumnIndexes) { while (other.HasNext()) { object[] next = other.GetNext(); this.AddAdjusted(next, rightColumnIndexes); } other.Close(); }
public void UnionAll(RowSetNavigatorData other) { other.Reset(); while (other.HasNext()) { object[] next = other.GetNext(); this.Add(next); } other.Close(); this.Reset(); }
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(); }
public override void Union(RowSetNavigatorData other) { this.RemoveDuplicates(); this.Reset(); while (other.HasNext()) { object[] next = other.GetNext(); if (!this.FindFirstRow(next).HasNext()) { next = ArrayUtil.ResizeArrayIfDifferent <object>(next, this.table.GetColumnCount()); this.Add(next); } } other.Close(); }
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(); }
public virtual void Union(RowSetNavigatorData other) { this.RemoveDuplicates(); other.RemoveDuplicates(); while (other.HasNext()) { object[] next = other.GetNext(); int num = ArraySort.SearchFirst <object[]>(this._table, 0, base.Size, next, this); if (num < 0) { num = -num - 1; base.CurrentPos = num; this.Insert(next); } } other.Close(); this.Reset(); }
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(); }