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);
        }
Exemplo n.º 2
0
 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);
            }
        }