Class AggregatorUtil


  • public class AggregatorUtil
    extends Object
    • Field Detail

      • LONG_SUM_CACHE_TYPE_ID

        public static final byte LONG_SUM_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DOUBLE_SUM_CACHE_TYPE_ID

        public static final byte DOUBLE_SUM_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DOUBLE_MAX_CACHE_TYPE_ID

        public static final byte DOUBLE_MAX_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DOUBLE_MIN_CACHE_TYPE_ID

        public static final byte DOUBLE_MIN_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • HYPER_UNIQUE_CACHE_TYPE_ID

        public static final byte HYPER_UNIQUE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FILTERED_AGG_CACHE_TYPE_ID

        public static final byte FILTERED_AGG_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • LONG_MAX_CACHE_TYPE_ID

        public static final byte LONG_MAX_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • LONG_MIN_CACHE_TYPE_ID

        public static final byte LONG_MIN_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FLOAT_SUM_CACHE_TYPE_ID

        public static final byte FLOAT_SUM_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FLOAT_MAX_CACHE_TYPE_ID

        public static final byte FLOAT_MAX_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FLOAT_MIN_CACHE_TYPE_ID

        public static final byte FLOAT_MIN_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • SKETCH_MERGE_CACHE_TYPE_ID

        public static final byte SKETCH_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DISTINCT_COUNT_CACHE_KEY

        public static final byte DISTINCT_COUNT_CACHE_KEY
        See Also:
        Constant Field Values
      • FLOAT_LAST_CACHE_TYPE_ID

        public static final byte FLOAT_LAST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • APPROX_HIST_CACHE_TYPE_ID

        public static final byte APPROX_HIST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • APPROX_HIST_FOLDING_CACHE_TYPE_ID

        public static final byte APPROX_HIST_FOLDING_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DOUBLE_FIRST_CACHE_TYPE_ID

        public static final byte DOUBLE_FIRST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DOUBLE_LAST_CACHE_TYPE_ID

        public static final byte DOUBLE_LAST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FLOAT_FIRST_CACHE_TYPE_ID

        public static final byte FLOAT_FIRST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • LONG_FIRST_CACHE_TYPE_ID

        public static final byte LONG_FIRST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • LONG_LAST_CACHE_TYPE_ID

        public static final byte LONG_LAST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • TIMESTAMP_CACHE_TYPE_ID

        public static final byte TIMESTAMP_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • VARIANCE_CACHE_TYPE_ID

        public static final byte VARIANCE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • QUANTILES_DOUBLES_SKETCH_BUILD_CACHE_TYPE_ID

        public static final byte QUANTILES_DOUBLES_SKETCH_BUILD_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • QUANTILES_DOUBLES_SKETCH_MERGE_CACHE_TYPE_ID

        public static final byte QUANTILES_DOUBLES_SKETCH_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • QUANTILES_DOUBLES_SKETCH_TO_HISTOGRAM_CACHE_TYPE_ID

        public static final byte QUANTILES_DOUBLES_SKETCH_TO_HISTOGRAM_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • QUANTILES_DOUBLES_SKETCH_TO_QUANTILE_CACHE_TYPE_ID

        public static final byte QUANTILES_DOUBLES_SKETCH_TO_QUANTILE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • QUANTILES_DOUBLES_SKETCH_TO_QUANTILES_CACHE_TYPE_ID

        public static final byte QUANTILES_DOUBLES_SKETCH_TO_QUANTILES_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • QUANTILES_DOUBLES_SKETCH_TO_STRING_CACHE_TYPE_ID

        public static final byte QUANTILES_DOUBLES_SKETCH_TO_STRING_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_SET_OP_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_SET_OP_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_ESTIMATE_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_ESTIMATE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_ESTIMATE_AND_BOUNDS_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_ESTIMATE_AND_BOUNDS_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_MEANS_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_MEANS_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_VARIANCES_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_VARIANCES_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_NUM_ENTRIES_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_NUM_ENTRIES_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_QUANTILES_SKETCH_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_QUANTILES_SKETCH_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_T_TEST_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_T_TEST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_STRING_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_STRING_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • STRING_FIRST_CACHE_TYPE_ID

        public static final byte STRING_FIRST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • STRING_LAST_CACHE_TYPE_ID

        public static final byte STRING_LAST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • SUPPRESSED_AGG_CACHE_TYPE_ID

        public static final byte SUPPRESSED_AGG_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • HLL_SKETCH_BUILD_CACHE_TYPE_ID

        public static final byte HLL_SKETCH_BUILD_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • HLL_SKETCH_MERGE_CACHE_TYPE_ID

        public static final byte HLL_SKETCH_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • HLL_SKETCH_UNION_CACHE_TYPE_ID

        public static final byte HLL_SKETCH_UNION_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • HLL_SKETCH_TO_STRING_CACHE_TYPE_ID

        public static final byte HLL_SKETCH_TO_STRING_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • HLL_SKETCH_TO_ESTIMATE_AND_BOUNDS_CACHE_TYPE_ID

        public static final byte HLL_SKETCH_TO_ESTIMATE_AND_BOUNDS_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FIXED_BUCKET_HIST_CACHE_TYPE_ID

        public static final byte FIXED_BUCKET_HIST_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • BLOOM_FILTER_CACHE_TYPE_ID

        public static final byte BLOOM_FILTER_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • BLOOM_FILTER_MERGE_CACHE_TYPE_ID

        public static final byte BLOOM_FILTER_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • MOMENTS_SKETCH_BUILD_CACHE_TYPE_ID

        public static final byte MOMENTS_SKETCH_BUILD_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • MOMENTS_SKETCH_MERGE_CACHE_TYPE_ID

        public static final byte MOMENTS_SKETCH_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • TDIGEST_BUILD_SKETCH_CACHE_TYPE_ID

        public static final byte TDIGEST_BUILD_SKETCH_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • LONG_ANY_CACHE_TYPE_ID

        public static final byte LONG_ANY_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • DOUBLE_ANY_CACHE_TYPE_ID

        public static final byte DOUBLE_ANY_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • FLOAT_ANY_CACHE_TYPE_ID

        public static final byte FLOAT_ANY_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • STRING_ANY_CACHE_TYPE_ID

        public static final byte STRING_ANY_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • GROUPING_CACHE_TYPE_ID

        public static final byte GROUPING_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • EXPRESSION_LAMBDA_CACHE_TYPE_ID

        public static final byte EXPRESSION_LAMBDA_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • KLL_DOUBLES_SKETCH_BUILD_CACHE_TYPE_ID

        public static final byte KLL_DOUBLES_SKETCH_BUILD_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • KLL_DOUBLES_SKETCH_MERGE_CACHE_TYPE_ID

        public static final byte KLL_DOUBLES_SKETCH_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • KLL_FLOATS_SKETCH_BUILD_CACHE_TYPE_ID

        public static final byte KLL_FLOATS_SKETCH_BUILD_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • KLL_FLOATS_SKETCH_MERGE_CACHE_TYPE_ID

        public static final byte KLL_FLOATS_SKETCH_MERGE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_BASE64_STRING_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_BASE64_STRING_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_CONSTANT_SKETCH_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_CONSTANT_SKETCH_CACHE_TYPE_ID
        See Also:
        Constant Field Values
      • ARRAY_OF_DOUBLES_SKETCH_TO_METRICS_SUM_ESTIMATE_CACHE_TYPE_ID

        public static final byte ARRAY_OF_DOUBLES_SKETCH_TO_METRICS_SUM_ESTIMATE_CACHE_TYPE_ID
        See Also:
        Constant Field Values
    • Constructor Detail

      • AggregatorUtil

        public AggregatorUtil()
    • Method Detail

      • pruneDependentPostAgg

        public static List<PostAggregator> pruneDependentPostAgg​(List<PostAggregator> postAggregatorList,
                                                                 String outputName)
        Given a list of PostAggregators and the name of an output column, returns the minimal list of PostAggregators required to compute the output column. If the outputColumn does not exist in the list of PostAggregators, the return list will be empty (under the assumption that the outputColumn comes from a project, aggregation or really anything other than a PostAggregator). If the outputColumn does exist in the list of PostAggregators, then the return list will have at least one element. If the PostAggregator with outputName depends on any other PostAggregators, then the returned list will contain all PostAggregators required to compute the outputColumn. Note that PostAggregators are processed in list-order, meaning that for a PostAggregator to depend on another PostAggregator, the "depender" must exist *after* the "dependee" in the list. That is, if PostAggregator A depends on PostAggregator B, then the list should be [B, A], such that A is computed after B.
        Parameters:
        postAggregatorList - List of postAggregator, there is a restriction that the list should be in an order such that all the dependencies of any given aggregator should occur before that aggregator. See AggregatorUtilTest.testOutOfOrderPruneDependentPostAgg for example.
        outputName - name of the postAgg on which dependency is to be calculated
        Returns:
        the list of dependent postAggregators
      • getSimpleAggregatorCacheKeySupplier

        public static com.google.common.base.Supplier<byte[]> getSimpleAggregatorCacheKeySupplier​(byte aggregatorType,
                                                                                                  String fieldName,
                                                                                                  com.google.common.base.Supplier<Expr> fieldExpression)