internal override bool IsSamePartition(PartitionInfo p) { HashPartition <TKey> p1 = p as HashPartition <TKey>; if (p1 == null || this.Count != p1.Count) { return(false); } // Check the comparers: return(this.m_comparer.Equals(p1.m_comparer)); }
internal override bool IsSamePartition(PartitionInfo p) { RangePartition <TKey> p1 = p as RangePartition <TKey>; if (p1 == null) { return(false); } // Check the keys: if (this.Keys == null || p1.Keys == null || this.Keys.Length != p1.Keys.Length) { return(false); } IComparer <TKey> comp1 = TypeSystem.GetComparer <TKey>(p1.m_comparer); if (comp1 == null) { return(false); } if (this.IsDescending != p1.IsDescending) { comp1 = new MinusComparer <TKey>(comp1); } for (int i = 0; i < this.Keys.Length; i++) { if (this.m_comparer.Compare(this.Keys[i], p1.Keys[i]) != 0) { return(false); } } // Check the comparers: return(this.m_comparer.Equals(p1.m_comparer)); }
internal virtual bool IsSameMonotoncity(PartitionInfo pinfo) { return(false); }
internal DataSetInfo(DataSetInfo info) { this.partitionInfo = info.partitionInfo; this.orderByInfo = info.orderByInfo; this.distinctInfo = info.distinctInfo; }
internal override PartitionInfo Create(LambdaExpression keySel) { Type keyType = keySel.Body.Type; return(PartitionInfo.CreateHash(keySel, this.Count, this.m_comparer, keyType)); }
internal DataSetInfo(PartitionInfo pinfo, OrderByInfo oinfo, DistinctInfo dinfo) { this.partitionInfo = pinfo; this.orderByInfo = oinfo; this.distinctInfo = dinfo; }
internal DataSetInfo() { this.partitionInfo = OnePartition; this.orderByInfo = NoOrderBy; this.distinctInfo = NoDistinct; }
internal override PartitionInfo Create(LambdaExpression keySel) { Type keyType = keySel.Body.Type; return(PartitionInfo.CreateRange(keySel, this.Keys, this.m_comparer, this.m_isDescending, this.Count, keyType)); }
internal override bool IsSamePartition(PartitionInfo p) { return(false); }
internal abstract bool IsSamePartition(PartitionInfo p);
internal virtual PartitionInfo Concat(PartitionInfo p) { return(new RandomPartition(this.Count + p.Count)); }