public override void RetrieveResults(out ITableResults resTable, out GroupByResults groupByResults) { var tmpDict = new Dictionary <GroupDictKey, AggregateBucketResult[]>(); tmpDict.Add(new GroupDictKey(0, 0), this.finalResults); resTable = new TableResults(); groupByResults = new DictGroupDictKeyBucket(tmpDict, resTable); }
public ABTreeSorterHalfStreamed(ExpressionComparer[] comparers, IOrderByExecutionHelper executionHelper, int columnCount, int[] usedVars, bool allowDup) : base(comparers, executionHelper, columnCount, usedVars) { this.sortJobs = new SortJob[this.executionHelper.ThreadCount]; for (int i = 0; i < sortJobs.Length; i++) { var results = new TableResults(this.ColumnCount, this.executionHelper.FixedArraySize, this.usedVars); this.sortJobs[i] = CreateJob(new IndexToRowProxyComparer(RowComparer.Factory(this.comparers, true), results, allowDup), results); } }
public override void RetrieveResults(out ITableResults resTable, out GroupByResults groupByResults) { resTable = new TableResults(); if (this.groupJobs.Length > 1) { groupByResults = new ConDictGroupDictKeyFullBucket(this.globalGroups, resTable); } else { groupByResults = new DictGroupDictKeyBucket(this.groupJobs[0].groups, this.groupJobs[0].resTable); } }
public ABTreeStreamedSorter(ExpressionComparer[] comparers, IOrderByExecutionHelper executionHelper, int columnCount, int[] usedVars, bool allowDup) : base(comparers, executionHelper, columnCount, usedVars) { this.firstKeyHasher = (TypeRangeHasher <T>)TypeRangeHasher.Factory(this.executionHelper.ThreadCount, typeof(T)); this.firstKeyExpressionHolder = this.comparers[0].GetExpressionHolder(); this.firstKeyExpression = (ExpressionReturnValue <T>) this.firstKeyExpressionHolder.Expr; this.rangeBuckets = new RangeBucket[this.firstKeyHasher.BucketCount]; this.firstKeyComparers = new ExpressionComparer <T> [this.rangeBuckets.Length]; for (int i = 0; i < this.rangeBuckets.Length; i++) { var results = new TableResults(this.ColumnCount, this.executionHelper.FixedArraySize, this.usedVars); var tmpRowComparer = RowComparer.Factory(this.comparers, true); this.firstKeyComparers[i] = (ExpressionComparer <T>)tmpRowComparer.comparers[0]; this.rangeBuckets[i] = CreateBucket(new IndexToRowProxyComparer(tmpRowComparer, results, allowDup), results); } }