_parseAggResult()

in lib/protocol/decoder.js [399:444]


    _parseAggResult(aggType, aggResultBody) {
        switch (aggType) {
            case tsSearchProtos.AggregationType.AGG_AVG: {
                return tsSearchProtos.AvgAggregationResult.decode(aggResultBody);
            }
            case tsSearchProtos.AggregationType.AGG_MAX: {
                return tsSearchProtos.MaxAggregationResult.decode(aggResultBody);
            }
            case tsSearchProtos.AggregationType.AGG_MIN: {
                return tsSearchProtos.MinAggregationResult.decode(aggResultBody);
            }
            case tsSearchProtos.AggregationType.AGG_SUM: {
                return tsSearchProtos.SumAggregationResult.decode(aggResultBody);
            }
            case tsSearchProtos.AggregationType.AGG_COUNT: {
                return tsSearchProtos.CountAggregationResult.decode(aggResultBody);
            }
            case tsSearchProtos.AggregationType.AGG_DISTINCT_COUNT: {
                return tsSearchProtos.DistinctCountAggregationResult.decode(aggResultBody);
            }
            case tsSearchProtos.AggregationType.AGG_TOP_ROWS: {
                let topRowsAggregationResult = tsSearchProtos.TopRowsAggregationResult.decode(aggResultBody);
                return {
                    rows: TableStore.decoder._parseRows(topRowsAggregationResult.rows),
                }
            }
            case tsSearchProtos.AggregationType.AGG_PERCENTILES: {
                let percentilesAggregationResult = tsSearchProtos.PercentilesAggregationResult.decode(aggResultBody);
                let percentilesAggregationItems = [];
                for (let percentilesAggregationItem of percentilesAggregationResult.percentilesAggregationItems) {
                    percentilesAggregationItems.push({
                        item: {
                            key: percentilesAggregationItem.key,
                            value: TableStore.decoder._parseSearchVariant(percentilesAggregationItem.value),
                        },
                    });
                }
                return {
                    items: percentilesAggregationItems,

                };
            }
            default:
                throw new Error("not exist AggregationType: " + aggType);
        }
    },