static

in asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java [2182:2893]


    static {
        //  Aggregate functions

        // AVG

        addAgg(AVG);
        addAgg(LOCAL_AVG);
        addAgg(GLOBAL_AVG);
        addLocalAgg(AVG, LOCAL_AVG);
        addIntermediateAgg(AVG, INTERMEDIATE_AVG);
        addIntermediateAgg(LOCAL_AVG, INTERMEDIATE_AVG);
        addIntermediateAgg(GLOBAL_AVG, INTERMEDIATE_AVG);
        addGlobalAgg(AVG, GLOBAL_AVG);

        addScalarAgg(AVG, SCALAR_AVG);

        addSerialAgg(AVG, SERIAL_AVG);
        addSerialAgg(LOCAL_AVG, SERIAL_LOCAL_AVG);
        addSerialAgg(GLOBAL_AVG, SERIAL_GLOBAL_AVG);
        addAgg(SERIAL_AVG);
        addAgg(SERIAL_LOCAL_AVG);
        addAgg(SERIAL_GLOBAL_AVG);
        addLocalAgg(SERIAL_AVG, SERIAL_LOCAL_AVG);
        addIntermediateAgg(SERIAL_AVG, SERIAL_INTERMEDIATE_AVG);
        addIntermediateAgg(SERIAL_LOCAL_AVG, SERIAL_INTERMEDIATE_AVG);
        addIntermediateAgg(SERIAL_GLOBAL_AVG, SERIAL_INTERMEDIATE_AVG);
        addGlobalAgg(SERIAL_AVG, SERIAL_GLOBAL_AVG);

        // AVG DISTINCT

        addDistinctAgg(AVG_DISTINCT, AVG);
        addScalarAgg(AVG_DISTINCT, SCALAR_AVG_DISTINCT);

        // COUNT

        addAgg(COUNT);
        addLocalAgg(COUNT, COUNT);
        addIntermediateAgg(COUNT, SUM);
        addGlobalAgg(COUNT, SUM);

        addScalarAgg(COUNT, SCALAR_COUNT);

        addSerialAgg(COUNT, SERIAL_COUNT);
        addAgg(SERIAL_COUNT);
        addLocalAgg(SERIAL_COUNT, SERIAL_COUNT);
        addIntermediateAgg(SERIAL_COUNT, SERIAL_SUM);
        addGlobalAgg(SERIAL_COUNT, SERIAL_SUM);

        // COUNT DISTINCT

        addDistinctAgg(COUNT_DISTINCT, COUNT);
        addScalarAgg(COUNT_DISTINCT, SCALAR_COUNT_DISTINCT);

        // COUNTN

        addAgg(COUNTN);
        addLocalAgg(COUNTN, COUNTN);
        addIntermediateAgg(COUNTN, SUM);
        addGlobalAgg(COUNTN, SUM);

        addScalarAgg(COUNTN, SCALAR_COUNTN);

        addSerialAgg(COUNTN, SERIAL_COUNTN);
        addAgg(SERIAL_COUNTN);
        addLocalAgg(SERIAL_COUNTN, SERIAL_COUNTN);
        addIntermediateAgg(SERIAL_COUNTN, SERIAL_SUM);
        addGlobalAgg(SERIAL_COUNTN, SERIAL_SUM);

        // COUNTN DISTINCT

        addDistinctAgg(COUNTN_DISTINCT, COUNTN);
        addScalarAgg(COUNTN_DISTINCT, SCALAR_COUNTN_DISTINCT);

        // MAX
        addAgg(MAX);
        addAgg(LOCAL_MAX);
        addAgg(GLOBAL_MAX);
        addLocalAgg(MAX, LOCAL_MAX);
        addIntermediateAgg(LOCAL_MAX, INTERMEDIATE_MAX);
        addIntermediateAgg(GLOBAL_MAX, GLOBAL_MAX);
        addIntermediateAgg(MAX, GLOBAL_MAX);
        addGlobalAgg(MAX, GLOBAL_MAX);

        addScalarAgg(MAX, SCALAR_MAX);

        // MAX DISTINCT
        addDistinctAgg(MAX_DISTINCT, MAX);
        addScalarAgg(MAX_DISTINCT, SCALAR_MAX_DISTINCT);

        // STDDEV_SAMP

        addAgg(STDDEV_SAMP);
        addAgg(LOCAL_STDDEV_SAMP);
        addAgg(GLOBAL_STDDEV_SAMP);
        addLocalAgg(STDDEV_SAMP, LOCAL_STDDEV_SAMP);
        addIntermediateAgg(STDDEV_SAMP, INTERMEDIATE_STDDEV_SAMP);
        addIntermediateAgg(LOCAL_STDDEV_SAMP, INTERMEDIATE_STDDEV_SAMP);
        addIntermediateAgg(GLOBAL_STDDEV_SAMP, INTERMEDIATE_STDDEV_SAMP);
        addGlobalAgg(STDDEV_SAMP, GLOBAL_STDDEV_SAMP);

        addScalarAgg(STDDEV_SAMP, SCALAR_STDDEV_SAMP);

        addSerialAgg(STDDEV_SAMP, SERIAL_STDDEV_SAMP);
        addSerialAgg(LOCAL_STDDEV_SAMP, SERIAL_LOCAL_STDDEV_SAMP);
        addSerialAgg(GLOBAL_STDDEV_SAMP, SERIAL_GLOBAL_STDDEV_SAMP);
        addAgg(SERIAL_STDDEV_SAMP);
        addAgg(SERIAL_LOCAL_STDDEV_SAMP);
        addAgg(SERIAL_GLOBAL_STDDEV_SAMP);
        addLocalAgg(SERIAL_STDDEV_SAMP, SERIAL_LOCAL_STDDEV_SAMP);
        addIntermediateAgg(SERIAL_STDDEV_SAMP, SERIAL_INTERMEDIATE_STDDEV_SAMP);
        addIntermediateAgg(SERIAL_LOCAL_STDDEV_SAMP, SERIAL_INTERMEDIATE_STDDEV_SAMP);
        addIntermediateAgg(SERIAL_GLOBAL_STDDEV_SAMP, SERIAL_INTERMEDIATE_STDDEV_SAMP);
        addGlobalAgg(SERIAL_STDDEV_SAMP, SERIAL_GLOBAL_STDDEV_SAMP);

        // STDDEV_SAMP DISTINCT

        addDistinctAgg(STDDEV_SAMP_DISTINCT, STDDEV_SAMP);
        addScalarAgg(STDDEV_SAMP_DISTINCT, SCALAR_STDDEV_SAMP_DISTINCT);

        // STDDEV_POP

        addAgg(STDDEV_POP);
        addAgg(LOCAL_STDDEV_POP);
        addAgg(GLOBAL_STDDEV_POP);
        addLocalAgg(STDDEV_POP, LOCAL_STDDEV_POP);
        addIntermediateAgg(STDDEV_POP, INTERMEDIATE_STDDEV_POP);
        addIntermediateAgg(LOCAL_STDDEV_POP, INTERMEDIATE_STDDEV_POP);
        addIntermediateAgg(GLOBAL_STDDEV_POP, INTERMEDIATE_STDDEV_POP);
        addGlobalAgg(STDDEV_POP, GLOBAL_STDDEV_POP);

        addScalarAgg(STDDEV_POP, SCALAR_STDDEV_POP);

        addSerialAgg(STDDEV_POP, SERIAL_STDDEV_POP);
        addSerialAgg(LOCAL_STDDEV_POP, SERIAL_LOCAL_STDDEV_POP);
        addSerialAgg(GLOBAL_STDDEV_POP, SERIAL_GLOBAL_STDDEV_POP);
        addAgg(SERIAL_STDDEV_POP);
        addAgg(SERIAL_LOCAL_STDDEV_POP);
        addAgg(SERIAL_GLOBAL_STDDEV_POP);
        addLocalAgg(SERIAL_STDDEV_POP, SERIAL_LOCAL_STDDEV_POP);
        addIntermediateAgg(SERIAL_STDDEV_POP, SERIAL_INTERMEDIATE_STDDEV_POP);
        addIntermediateAgg(SERIAL_LOCAL_STDDEV_POP, SERIAL_INTERMEDIATE_STDDEV_POP);
        addIntermediateAgg(SERIAL_GLOBAL_STDDEV_POP, SERIAL_INTERMEDIATE_STDDEV_POP);
        addGlobalAgg(SERIAL_STDDEV_POP, SERIAL_GLOBAL_STDDEV_POP);

        // STDDEV_POP DISTINCT

        addDistinctAgg(STDDEV_POP_DISTINCT, STDDEV_POP);
        addScalarAgg(STDDEV_POP_DISTINCT, SCALAR_STDDEV_POP_DISTINCT);

        // VAR_SAMP

        addAgg(VAR_SAMP);
        addAgg(LOCAL_VAR_SAMP);
        addAgg(GLOBAL_VAR_SAMP);
        addLocalAgg(VAR_SAMP, LOCAL_VAR_SAMP);
        addIntermediateAgg(VAR_SAMP, INTERMEDIATE_VAR_SAMP);
        addIntermediateAgg(LOCAL_VAR_SAMP, INTERMEDIATE_VAR_SAMP);
        addIntermediateAgg(GLOBAL_VAR_SAMP, INTERMEDIATE_VAR_SAMP);
        addGlobalAgg(VAR_SAMP, GLOBAL_VAR_SAMP);

        addScalarAgg(VAR_SAMP, SCALAR_VAR_SAMP);

        addSerialAgg(VAR_SAMP, SERIAL_VAR_SAMP);
        addSerialAgg(LOCAL_VAR_SAMP, SERIAL_LOCAL_VAR_SAMP);
        addSerialAgg(GLOBAL_VAR_SAMP, SERIAL_GLOBAL_VAR_SAMP);
        addAgg(SERIAL_VAR_SAMP);
        addAgg(SERIAL_LOCAL_VAR_SAMP);
        addAgg(SERIAL_GLOBAL_VAR_SAMP);
        addLocalAgg(SERIAL_VAR_SAMP, SERIAL_LOCAL_VAR_SAMP);
        addIntermediateAgg(SERIAL_VAR_SAMP, SERIAL_INTERMEDIATE_VAR_SAMP);
        addIntermediateAgg(SERIAL_LOCAL_VAR_SAMP, SERIAL_INTERMEDIATE_VAR_SAMP);
        addIntermediateAgg(SERIAL_GLOBAL_VAR_SAMP, SERIAL_INTERMEDIATE_VAR_SAMP);
        addGlobalAgg(SERIAL_VAR_SAMP, SERIAL_GLOBAL_VAR_SAMP);

        // VAR_SAMP DISTINCT

        addDistinctAgg(VAR_SAMP_DISTINCT, VAR_SAMP);
        addScalarAgg(VAR_SAMP_DISTINCT, SCALAR_VAR_SAMP_DISTINCT);

        // VAR_POP

        addAgg(VAR_POP);
        addAgg(LOCAL_VAR_POP);
        addAgg(GLOBAL_VAR_POP);
        addLocalAgg(VAR_POP, LOCAL_VAR_POP);
        addIntermediateAgg(VAR_POP, INTERMEDIATE_VAR_POP);
        addIntermediateAgg(LOCAL_VAR_POP, INTERMEDIATE_VAR_POP);
        addIntermediateAgg(GLOBAL_VAR_POP, INTERMEDIATE_VAR_POP);
        addGlobalAgg(VAR_POP, GLOBAL_VAR_POP);

        addScalarAgg(VAR_POP, SCALAR_VAR_POP);

        addSerialAgg(VAR_POP, SERIAL_VAR_POP);
        addSerialAgg(LOCAL_VAR_POP, SERIAL_LOCAL_VAR_POP);
        addSerialAgg(GLOBAL_VAR_POP, SERIAL_GLOBAL_VAR_POP);
        addAgg(SERIAL_VAR_POP);
        addAgg(SERIAL_LOCAL_VAR_POP);
        addAgg(SERIAL_GLOBAL_VAR_POP);
        addLocalAgg(SERIAL_VAR_POP, SERIAL_LOCAL_VAR_POP);
        addIntermediateAgg(SERIAL_VAR_POP, SERIAL_INTERMEDIATE_VAR_POP);
        addIntermediateAgg(SERIAL_LOCAL_VAR_POP, SERIAL_INTERMEDIATE_VAR_POP);
        addIntermediateAgg(SERIAL_GLOBAL_VAR_POP, SERIAL_INTERMEDIATE_VAR_POP);
        addGlobalAgg(SERIAL_VAR_POP, SERIAL_GLOBAL_VAR_POP);

        // VAR_POP DISTINCT

        addDistinctAgg(VAR_POP_DISTINCT, VAR_POP);
        addScalarAgg(VAR_POP_DISTINCT, SCALAR_VAR_POP_DISTINCT);

        // SKEWNESS

        addAgg(SKEWNESS);
        addAgg(LOCAL_SKEWNESS);
        addAgg(GLOBAL_SKEWNESS);
        addLocalAgg(SKEWNESS, LOCAL_SKEWNESS);
        addIntermediateAgg(SKEWNESS, INTERMEDIATE_SKEWNESS);
        addIntermediateAgg(LOCAL_SKEWNESS, INTERMEDIATE_SKEWNESS);
        addIntermediateAgg(GLOBAL_SKEWNESS, INTERMEDIATE_SKEWNESS);
        addGlobalAgg(SKEWNESS, GLOBAL_SKEWNESS);

        addScalarAgg(SKEWNESS, SCALAR_SKEWNESS);

        addSerialAgg(SKEWNESS, SERIAL_SKEWNESS);
        addSerialAgg(LOCAL_SKEWNESS, SERIAL_LOCAL_SKEWNESS);
        addSerialAgg(GLOBAL_SKEWNESS, SERIAL_GLOBAL_SKEWNESS);
        addAgg(SERIAL_SKEWNESS);
        addAgg(SERIAL_LOCAL_SKEWNESS);
        addAgg(SERIAL_GLOBAL_SKEWNESS);
        addLocalAgg(SERIAL_SKEWNESS, SERIAL_LOCAL_SKEWNESS);
        addIntermediateAgg(SERIAL_SKEWNESS, SERIAL_INTERMEDIATE_SKEWNESS);
        addIntermediateAgg(SERIAL_LOCAL_SKEWNESS, SERIAL_INTERMEDIATE_SKEWNESS);
        addIntermediateAgg(SERIAL_GLOBAL_SKEWNESS, SERIAL_INTERMEDIATE_SKEWNESS);
        addGlobalAgg(SERIAL_SKEWNESS, SERIAL_GLOBAL_SKEWNESS);

        // SKEWNESS DISTINCT

        addDistinctAgg(SKEWNESS_DISTINCT, SKEWNESS);
        addScalarAgg(SKEWNESS_DISTINCT, SCALAR_SKEWNESS_DISTINCT);

        // KURTOSIS

        addAgg(KURTOSIS);
        addAgg(LOCAL_KURTOSIS);
        addAgg(GLOBAL_KURTOSIS);
        addLocalAgg(KURTOSIS, LOCAL_KURTOSIS);
        addIntermediateAgg(KURTOSIS, INTERMEDIATE_KURTOSIS);
        addIntermediateAgg(LOCAL_KURTOSIS, INTERMEDIATE_KURTOSIS);
        addIntermediateAgg(GLOBAL_KURTOSIS, INTERMEDIATE_KURTOSIS);
        addGlobalAgg(KURTOSIS, GLOBAL_KURTOSIS);

        addScalarAgg(KURTOSIS, SCALAR_KURTOSIS);

        addSerialAgg(KURTOSIS, SERIAL_KURTOSIS);
        addSerialAgg(LOCAL_KURTOSIS, SERIAL_LOCAL_KURTOSIS);
        addSerialAgg(GLOBAL_KURTOSIS, SERIAL_GLOBAL_KURTOSIS);
        addAgg(SERIAL_KURTOSIS);
        addAgg(SERIAL_LOCAL_KURTOSIS);
        addAgg(SERIAL_GLOBAL_KURTOSIS);
        addLocalAgg(SERIAL_KURTOSIS, SERIAL_LOCAL_KURTOSIS);
        addIntermediateAgg(SERIAL_KURTOSIS, SERIAL_INTERMEDIATE_KURTOSIS);
        addIntermediateAgg(SERIAL_LOCAL_KURTOSIS, SERIAL_INTERMEDIATE_KURTOSIS);
        addIntermediateAgg(SERIAL_GLOBAL_KURTOSIS, SERIAL_INTERMEDIATE_KURTOSIS);
        addGlobalAgg(SERIAL_KURTOSIS, SERIAL_GLOBAL_KURTOSIS);

        // KURTOSIS DISTINCT

        addDistinctAgg(KURTOSIS_DISTINCT, KURTOSIS);
        addScalarAgg(KURTOSIS_DISTINCT, SCALAR_KURTOSIS_DISTINCT);

        // FIRST_ELEMENT

        addAgg(FIRST_ELEMENT);
        addAgg(LOCAL_FIRST_ELEMENT);
        addLocalAgg(FIRST_ELEMENT, LOCAL_FIRST_ELEMENT);
        addIntermediateAgg(LOCAL_FIRST_ELEMENT, FIRST_ELEMENT);
        addIntermediateAgg(FIRST_ELEMENT, FIRST_ELEMENT);
        addGlobalAgg(FIRST_ELEMENT, FIRST_ELEMENT);

        addScalarAgg(FIRST_ELEMENT, SCALAR_FIRST_ELEMENT);
        addScalarAgg(LOCAL_FIRST_ELEMENT, SCALAR_LOCAL_FIRST_ELEMENT);

        // LAST_ELEMENT

        addAgg(LAST_ELEMENT);
        addScalarAgg(LAST_ELEMENT, SCALAR_LAST_ELEMENT);

        // RANGE_MAP
        addAgg(RANGE_MAP);
        addAgg(LOCAL_SAMPLING);
        addLocalAgg(RANGE_MAP, LOCAL_SAMPLING);
        addIntermediateAgg(LOCAL_SAMPLING, RANGE_MAP);
        addIntermediateAgg(RANGE_MAP, RANGE_MAP);
        addGlobalAgg(RANGE_MAP, RANGE_MAP);

        addAgg(NULL_WRITER);
        addLocalAgg(NULL_WRITER, NULL_WRITER);
        addIntermediateAgg(NULL_WRITER, NULL_WRITER);
        addGlobalAgg(NULL_WRITER, NULL_WRITER);

        // MIN
        addAgg(MIN);
        addAgg(LOCAL_MIN);
        addAgg(GLOBAL_MIN);
        addLocalAgg(MIN, LOCAL_MIN);
        addIntermediateAgg(LOCAL_MIN, INTERMEDIATE_MIN);
        addIntermediateAgg(GLOBAL_MIN, GLOBAL_MIN);
        addIntermediateAgg(MIN, GLOBAL_MIN);
        addGlobalAgg(MIN, GLOBAL_MIN);

        addScalarAgg(MIN, SCALAR_MIN);

        // MIN DISTINCT
        addDistinctAgg(MIN_DISTINCT, MIN);
        addScalarAgg(MIN_DISTINCT, SCALAR_MIN_DISTINCT);

        // SUM
        addAgg(SUM);
        addAgg(LOCAL_SUM);
        addAgg(GLOBAL_SUM);
        addLocalAgg(SUM, LOCAL_SUM);
        addIntermediateAgg(SUM, INTERMEDIATE_SUM);
        addIntermediateAgg(LOCAL_SUM, INTERMEDIATE_SUM);
        addIntermediateAgg(GLOBAL_SUM, INTERMEDIATE_SUM);
        addGlobalAgg(SUM, GLOBAL_SUM);
        addScalarAgg(SUM, SCALAR_SUM);

        addAgg(SERIAL_SUM);
        addAgg(SERIAL_LOCAL_SUM);
        addAgg(SERIAL_GLOBAL_SUM);
        addSerialAgg(SUM, SERIAL_SUM);
        addSerialAgg(LOCAL_SUM, SERIAL_LOCAL_SUM);
        addSerialAgg(GLOBAL_SUM, SERIAL_GLOBAL_SUM);
        addLocalAgg(SERIAL_SUM, SERIAL_LOCAL_SUM);
        addIntermediateAgg(SERIAL_SUM, SERIAL_INTERMEDIATE_SUM);
        addIntermediateAgg(SERIAL_LOCAL_SUM, SERIAL_INTERMEDIATE_SUM);
        addIntermediateAgg(SERIAL_GLOBAL_SUM, SERIAL_INTERMEDIATE_SUM);
        addGlobalAgg(SERIAL_SUM, SERIAL_GLOBAL_SUM);

        // SUM DISTINCT
        addDistinctAgg(SUM_DISTINCT, SUM);
        addScalarAgg(SUM_DISTINCT, SCALAR_SUM_DISTINCT);

        // LISTIFY/ARRAY_AGG

        addAgg(LISTIFY);
        addScalarAgg(LISTIFY, SCALAR_ARRAYAGG);

        // LISTIFY/ARRAY_AGG DISTINCT

        addDistinctAgg(LISTIFY_DISTINCT, LISTIFY);
        addScalarAgg(LISTIFY_DISTINCT, SCALAR_ARRAYAGG_DISTINCT);

        // SQL Aggregate Functions

        // SQL AVG

        addAgg(SQL_AVG);
        addAgg(LOCAL_SQL_AVG);
        addAgg(GLOBAL_SQL_AVG);
        addLocalAgg(SQL_AVG, LOCAL_SQL_AVG);
        addIntermediateAgg(SQL_AVG, INTERMEDIATE_SQL_AVG);
        addIntermediateAgg(LOCAL_SQL_AVG, INTERMEDIATE_SQL_AVG);
        addIntermediateAgg(GLOBAL_SQL_AVG, INTERMEDIATE_SQL_AVG);
        addGlobalAgg(SQL_AVG, GLOBAL_SQL_AVG);

        addScalarAgg(SQL_AVG, SCALAR_SQL_AVG);

        addSerialAgg(SQL_AVG, SERIAL_SQL_AVG);
        addSerialAgg(LOCAL_SQL_AVG, SERIAL_LOCAL_SQL_AVG);
        addSerialAgg(GLOBAL_SQL_AVG, SERIAL_GLOBAL_SQL_AVG);
        addAgg(SERIAL_SQL_AVG);
        addAgg(SERIAL_LOCAL_SQL_AVG);
        addAgg(SERIAL_GLOBAL_SQL_AVG);
        addLocalAgg(SERIAL_SQL_AVG, SERIAL_LOCAL_SQL_AVG);
        addIntermediateAgg(SERIAL_SQL_AVG, SERIAL_INTERMEDIATE_SQL_AVG);
        addIntermediateAgg(SERIAL_LOCAL_SQL_AVG, SERIAL_INTERMEDIATE_SQL_AVG);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_AVG, SERIAL_INTERMEDIATE_SQL_AVG);
        addGlobalAgg(SERIAL_SQL_AVG, SERIAL_GLOBAL_SQL_AVG);

        // SQL STDDEV_SAMP

        addAgg(SQL_STDDEV_SAMP);
        addAgg(LOCAL_SQL_STDDEV_SAMP);
        addAgg(GLOBAL_SQL_STDDEV_SAMP);
        addLocalAgg(SQL_STDDEV_SAMP, LOCAL_SQL_STDDEV_SAMP);
        addIntermediateAgg(SQL_STDDEV_SAMP, INTERMEDIATE_SQL_STDDEV_SAMP);
        addIntermediateAgg(LOCAL_SQL_STDDEV_SAMP, INTERMEDIATE_SQL_STDDEV_SAMP);
        addIntermediateAgg(GLOBAL_SQL_STDDEV_SAMP, INTERMEDIATE_SQL_STDDEV_SAMP);
        addGlobalAgg(SQL_STDDEV_SAMP, GLOBAL_SQL_STDDEV_SAMP);

        addScalarAgg(SQL_STDDEV_SAMP, SCALAR_SQL_STDDEV_SAMP);

        addSerialAgg(SQL_STDDEV_SAMP, SERIAL_SQL_STDDEV_SAMP);
        addSerialAgg(LOCAL_SQL_STDDEV_SAMP, SERIAL_LOCAL_SQL_STDDEV_SAMP);
        addSerialAgg(GLOBAL_SQL_STDDEV_SAMP, SERIAL_GLOBAL_SQL_STDDEV_SAMP);
        addAgg(SERIAL_SQL_STDDEV_SAMP);
        addAgg(SERIAL_LOCAL_SQL_STDDEV_SAMP);
        addAgg(SERIAL_GLOBAL_SQL_STDDEV_SAMP);
        addLocalAgg(SERIAL_SQL_STDDEV_SAMP, SERIAL_LOCAL_SQL_STDDEV_SAMP);
        addIntermediateAgg(SERIAL_SQL_STDDEV_SAMP, SERIAL_INTERMEDIATE_SQL_STDDEV_SAMP);
        addIntermediateAgg(SERIAL_LOCAL_SQL_STDDEV_SAMP, SERIAL_INTERMEDIATE_SQL_STDDEV_SAMP);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_STDDEV_SAMP, SERIAL_INTERMEDIATE_SQL_STDDEV_SAMP);
        addGlobalAgg(SERIAL_SQL_STDDEV_SAMP, SERIAL_GLOBAL_SQL_STDDEV_SAMP);

        // SQL STDDEV_POP

        addAgg(SQL_STDDEV_POP);
        addAgg(LOCAL_SQL_STDDEV_POP);
        addAgg(GLOBAL_SQL_STDDEV_POP);
        addLocalAgg(SQL_STDDEV_POP, LOCAL_SQL_STDDEV_POP);
        addIntermediateAgg(SQL_STDDEV_POP, INTERMEDIATE_SQL_STDDEV_POP);
        addIntermediateAgg(LOCAL_SQL_STDDEV_POP, INTERMEDIATE_SQL_STDDEV_POP);
        addIntermediateAgg(GLOBAL_SQL_STDDEV_POP, INTERMEDIATE_SQL_STDDEV_POP);
        addGlobalAgg(SQL_STDDEV_POP, GLOBAL_SQL_STDDEV_POP);

        addScalarAgg(SQL_STDDEV_POP, SCALAR_SQL_STDDEV_POP);

        addSerialAgg(SQL_STDDEV_POP, SERIAL_SQL_STDDEV_POP);
        addSerialAgg(LOCAL_SQL_STDDEV_POP, SERIAL_LOCAL_SQL_STDDEV_POP);
        addSerialAgg(GLOBAL_SQL_STDDEV_POP, SERIAL_GLOBAL_SQL_STDDEV_POP);
        addAgg(SERIAL_SQL_STDDEV_POP);
        addAgg(SERIAL_LOCAL_SQL_STDDEV_POP);
        addAgg(SERIAL_GLOBAL_SQL_STDDEV_POP);
        addLocalAgg(SERIAL_SQL_STDDEV_POP, SERIAL_LOCAL_SQL_STDDEV_POP);
        addIntermediateAgg(SERIAL_SQL_STDDEV_POP, SERIAL_INTERMEDIATE_SQL_STDDEV_POP);
        addIntermediateAgg(SERIAL_LOCAL_SQL_STDDEV_POP, SERIAL_INTERMEDIATE_SQL_STDDEV_POP);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_STDDEV_POP, SERIAL_INTERMEDIATE_SQL_STDDEV_POP);
        addGlobalAgg(SERIAL_SQL_STDDEV_POP, SERIAL_GLOBAL_SQL_STDDEV_POP);

        // SQL VAR_SAMP

        addAgg(SQL_VAR_SAMP);
        addAgg(LOCAL_SQL_VAR_SAMP);
        addAgg(GLOBAL_SQL_VAR_SAMP);
        addLocalAgg(SQL_VAR_SAMP, LOCAL_SQL_VAR_SAMP);
        addIntermediateAgg(SQL_VAR_SAMP, INTERMEDIATE_SQL_VAR_SAMP);
        addIntermediateAgg(LOCAL_SQL_VAR_SAMP, INTERMEDIATE_SQL_VAR_SAMP);
        addIntermediateAgg(GLOBAL_SQL_VAR_SAMP, INTERMEDIATE_SQL_VAR_SAMP);
        addGlobalAgg(SQL_VAR_SAMP, GLOBAL_SQL_VAR_SAMP);

        addScalarAgg(SQL_VAR_SAMP, SCALAR_SQL_VAR_SAMP);

        addSerialAgg(SQL_VAR_SAMP, SERIAL_SQL_VAR_SAMP);
        addSerialAgg(LOCAL_SQL_VAR_SAMP, SERIAL_LOCAL_SQL_VAR_SAMP);
        addSerialAgg(GLOBAL_SQL_VAR_SAMP, SERIAL_GLOBAL_SQL_VAR_SAMP);
        addAgg(SERIAL_SQL_VAR_SAMP);
        addAgg(SERIAL_LOCAL_SQL_VAR_SAMP);
        addAgg(SERIAL_GLOBAL_SQL_VAR_SAMP);
        addLocalAgg(SERIAL_SQL_VAR_SAMP, SERIAL_LOCAL_SQL_VAR_SAMP);
        addIntermediateAgg(SERIAL_SQL_VAR_SAMP, SERIAL_INTERMEDIATE_SQL_VAR_SAMP);
        addIntermediateAgg(SERIAL_LOCAL_SQL_VAR_SAMP, SERIAL_INTERMEDIATE_SQL_VAR_SAMP);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_VAR_SAMP, SERIAL_INTERMEDIATE_SQL_VAR_SAMP);
        addGlobalAgg(SERIAL_SQL_VAR_SAMP, SERIAL_GLOBAL_SQL_VAR_SAMP);

        // SQL VAR_POP

        addAgg(SQL_VAR_POP);
        addAgg(LOCAL_SQL_VAR_POP);
        addAgg(GLOBAL_SQL_VAR_POP);
        addLocalAgg(SQL_VAR_POP, LOCAL_SQL_VAR_POP);
        addIntermediateAgg(SQL_VAR_POP, INTERMEDIATE_SQL_VAR_POP);
        addIntermediateAgg(LOCAL_SQL_VAR_POP, INTERMEDIATE_SQL_VAR_POP);
        addIntermediateAgg(GLOBAL_SQL_VAR_POP, INTERMEDIATE_SQL_VAR_POP);
        addGlobalAgg(SQL_VAR_POP, GLOBAL_SQL_VAR_POP);

        addScalarAgg(SQL_VAR_POP, SCALAR_SQL_VAR_POP);

        addSerialAgg(SQL_VAR_POP, SERIAL_SQL_VAR_POP);
        addSerialAgg(LOCAL_SQL_VAR_POP, SERIAL_LOCAL_SQL_VAR_POP);
        addSerialAgg(GLOBAL_SQL_VAR_POP, SERIAL_GLOBAL_SQL_VAR_POP);
        addAgg(SERIAL_SQL_VAR_POP);
        addAgg(SERIAL_LOCAL_SQL_VAR_POP);
        addAgg(SERIAL_GLOBAL_SQL_VAR_POP);
        addLocalAgg(SERIAL_SQL_VAR_POP, SERIAL_LOCAL_SQL_VAR_POP);
        addIntermediateAgg(SERIAL_SQL_VAR_POP, SERIAL_INTERMEDIATE_SQL_VAR_POP);
        addIntermediateAgg(SERIAL_LOCAL_SQL_VAR_POP, SERIAL_INTERMEDIATE_SQL_VAR_POP);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_VAR_POP, SERIAL_INTERMEDIATE_SQL_VAR_POP);
        addGlobalAgg(SERIAL_SQL_VAR_POP, SERIAL_GLOBAL_SQL_VAR_POP);

        // SQL SKEWNESS

        addAgg(SQL_SKEWNESS);
        addAgg(LOCAL_SQL_SKEWNESS);
        addAgg(GLOBAL_SQL_SKEWNESS);
        addLocalAgg(SQL_SKEWNESS, LOCAL_SQL_SKEWNESS);
        addIntermediateAgg(SQL_SKEWNESS, INTERMEDIATE_SQL_SKEWNESS);
        addIntermediateAgg(LOCAL_SQL_SKEWNESS, INTERMEDIATE_SQL_SKEWNESS);
        addIntermediateAgg(GLOBAL_SQL_SKEWNESS, INTERMEDIATE_SQL_SKEWNESS);
        addGlobalAgg(SQL_SKEWNESS, GLOBAL_SQL_SKEWNESS);

        addScalarAgg(SQL_SKEWNESS, SCALAR_SQL_SKEWNESS);

        addSerialAgg(SQL_SKEWNESS, SERIAL_SQL_SKEWNESS);
        addSerialAgg(LOCAL_SQL_SKEWNESS, SERIAL_LOCAL_SQL_SKEWNESS);
        addSerialAgg(GLOBAL_SQL_SKEWNESS, SERIAL_GLOBAL_SQL_SKEWNESS);
        addAgg(SERIAL_SQL_SKEWNESS);
        addAgg(SERIAL_LOCAL_SQL_SKEWNESS);
        addAgg(SERIAL_GLOBAL_SQL_SKEWNESS);
        addLocalAgg(SERIAL_SQL_SKEWNESS, SERIAL_LOCAL_SQL_SKEWNESS);
        addIntermediateAgg(SERIAL_SQL_SKEWNESS, SERIAL_INTERMEDIATE_SQL_SKEWNESS);
        addIntermediateAgg(SERIAL_LOCAL_SQL_SKEWNESS, SERIAL_INTERMEDIATE_SQL_SKEWNESS);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_SKEWNESS, SERIAL_INTERMEDIATE_SQL_SKEWNESS);
        addGlobalAgg(SERIAL_SQL_SKEWNESS, SERIAL_GLOBAL_SQL_SKEWNESS);

        // SQL KURTOSIS

        addAgg(SQL_KURTOSIS);
        addAgg(LOCAL_SQL_KURTOSIS);
        addAgg(GLOBAL_SQL_KURTOSIS);
        addLocalAgg(SQL_KURTOSIS, LOCAL_SQL_KURTOSIS);
        addIntermediateAgg(SQL_KURTOSIS, INTERMEDIATE_SQL_KURTOSIS);
        addIntermediateAgg(LOCAL_SQL_KURTOSIS, INTERMEDIATE_SQL_KURTOSIS);
        addIntermediateAgg(GLOBAL_SQL_KURTOSIS, INTERMEDIATE_SQL_KURTOSIS);
        addGlobalAgg(SQL_KURTOSIS, GLOBAL_SQL_KURTOSIS);

        addScalarAgg(SQL_KURTOSIS, SCALAR_SQL_KURTOSIS);

        addSerialAgg(SQL_KURTOSIS, SERIAL_SQL_KURTOSIS);
        addSerialAgg(LOCAL_SQL_KURTOSIS, SERIAL_LOCAL_SQL_KURTOSIS);
        addSerialAgg(GLOBAL_SQL_KURTOSIS, SERIAL_GLOBAL_SQL_KURTOSIS);
        addAgg(SERIAL_SQL_KURTOSIS);
        addAgg(SERIAL_LOCAL_SQL_KURTOSIS);
        addAgg(SERIAL_GLOBAL_SQL_KURTOSIS);
        addLocalAgg(SERIAL_SQL_KURTOSIS, SERIAL_LOCAL_SQL_KURTOSIS);
        addIntermediateAgg(SERIAL_SQL_KURTOSIS, SERIAL_INTERMEDIATE_SQL_KURTOSIS);
        addIntermediateAgg(SERIAL_LOCAL_SQL_KURTOSIS, SERIAL_INTERMEDIATE_SQL_KURTOSIS);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_KURTOSIS, SERIAL_INTERMEDIATE_SQL_KURTOSIS);
        addGlobalAgg(SERIAL_SQL_KURTOSIS, SERIAL_GLOBAL_SQL_KURTOSIS);

        // SQL AVG DISTINCT

        addDistinctAgg(SQL_AVG_DISTINCT, SQL_AVG);
        addScalarAgg(SQL_AVG_DISTINCT, SCALAR_SQL_AVG_DISTINCT);

        // SQL STDDEV_SAMP DISTINCT

        addDistinctAgg(SQL_STDDEV_SAMP_DISTINCT, SQL_STDDEV_SAMP);
        addScalarAgg(SQL_STDDEV_SAMP_DISTINCT, SCALAR_SQL_STDDEV_SAMP_DISTINCT);

        // SQL STDDEV_POP DISTINCT

        addDistinctAgg(SQL_STDDEV_POP_DISTINCT, SQL_STDDEV_POP);
        addScalarAgg(SQL_STDDEV_POP_DISTINCT, SCALAR_SQL_STDDEV_POP_DISTINCT);

        // SQL VAR_SAMP DISTINCT

        addDistinctAgg(SQL_VAR_SAMP_DISTINCT, SQL_VAR_SAMP);
        addScalarAgg(SQL_VAR_SAMP_DISTINCT, SCALAR_SQL_VAR_SAMP_DISTINCT);

        // SQL VAR_POP DISTINCT

        addDistinctAgg(SQL_VAR_POP_DISTINCT, SQL_VAR_POP);
        addScalarAgg(SQL_VAR_POP_DISTINCT, SCALAR_SQL_VAR_POP_DISTINCT);

        // SQL SKEWNESS DISTINCT

        addDistinctAgg(SQL_SKEWNESS_DISTINCT, SQL_SKEWNESS);
        addScalarAgg(SQL_SKEWNESS_DISTINCT, SCALAR_SQL_SKEWNESS_DISTINCT);

        // SQL KURTOSIS DISTINCT

        addDistinctAgg(SQL_KURTOSIS_DISTINCT, SQL_KURTOSIS);
        addScalarAgg(SQL_KURTOSIS_DISTINCT, SCALAR_SQL_KURTOSIS_DISTINCT);

        // SQL COUNT

        addAgg(SQL_COUNT);
        addLocalAgg(SQL_COUNT, SQL_COUNT);
        addIntermediateAgg(SQL_COUNT, SQL_SUM);
        addGlobalAgg(SQL_COUNT, SQL_SUM);

        addScalarAgg(SQL_COUNT, SCALAR_SQL_COUNT);

        addSerialAgg(SQL_COUNT, SERIAL_SQL_COUNT);
        addAgg(SERIAL_SQL_COUNT);
        addLocalAgg(SERIAL_SQL_COUNT, SERIAL_SQL_COUNT);
        addIntermediateAgg(SERIAL_SQL_COUNT, SERIAL_SQL_SUM);
        addGlobalAgg(SERIAL_SQL_COUNT, SERIAL_SQL_SUM);

        // SQL COUNT DISTINCT

        addDistinctAgg(SQL_COUNT_DISTINCT, SQL_COUNT);
        addScalarAgg(SQL_COUNT_DISTINCT, SCALAR_SQL_COUNT_DISTINCT);

        // SQL COUNTN

        addAgg(SQL_COUNTN);
        addLocalAgg(SQL_COUNTN, SQL_COUNTN);
        addIntermediateAgg(SQL_COUNTN, SQL_SUM);
        addGlobalAgg(SQL_COUNTN, SQL_SUM);

        addScalarAgg(SQL_COUNTN, SCALAR_SQL_COUNTN);

        addSerialAgg(SQL_COUNTN, SERIAL_SQL_COUNTN);
        addAgg(SERIAL_SQL_COUNTN);
        addLocalAgg(SERIAL_SQL_COUNTN, SERIAL_SQL_COUNTN);
        addIntermediateAgg(SERIAL_SQL_COUNTN, SERIAL_SQL_SUM);
        addGlobalAgg(SERIAL_SQL_COUNTN, SERIAL_SQL_SUM);

        // SQL COUNTN DISTINCT

        addDistinctAgg(SQL_COUNTN_DISTINCT, SQL_COUNTN);
        addScalarAgg(SQL_COUNTN_DISTINCT, SCALAR_SQL_COUNTN_DISTINCT);

        // SQL MAX
        addAgg(SQL_MAX);
        addAgg(LOCAL_SQL_MAX);
        addAgg(GLOBAL_SQL_MAX);
        addLocalAgg(SQL_MAX, LOCAL_SQL_MAX);
        addIntermediateAgg(LOCAL_SQL_MAX, INTERMEDIATE_SQL_MAX);
        addIntermediateAgg(GLOBAL_SQL_MAX, GLOBAL_SQL_MAX);
        addIntermediateAgg(SQL_MAX, GLOBAL_SQL_MAX);
        addGlobalAgg(SQL_MAX, GLOBAL_SQL_MAX);

        addScalarAgg(SQL_MAX, SCALAR_SQL_MAX);

        // SQL MAX DISTINCT
        addDistinctAgg(SQL_MAX_DISTINCT, SQL_MAX);
        addScalarAgg(SQL_MAX_DISTINCT, SCALAR_SQL_MAX_DISTINCT);

        // SQL MIN
        addAgg(SQL_MIN);
        addAgg(LOCAL_SQL_MIN);
        addAgg(GLOBAL_SQL_MIN);
        addLocalAgg(SQL_MIN, LOCAL_SQL_MIN);
        addIntermediateAgg(LOCAL_SQL_MIN, INTERMEDIATE_SQL_MIN);
        addIntermediateAgg(GLOBAL_SQL_MIN, GLOBAL_SQL_MIN);
        addIntermediateAgg(SQL_MIN, GLOBAL_SQL_MIN);
        addGlobalAgg(SQL_MIN, GLOBAL_SQL_MIN);

        addScalarAgg(SQL_MIN, SCALAR_SQL_MIN);

        // SQL MIN DISTINCT
        addDistinctAgg(SQL_MIN_DISTINCT, SQL_MIN);
        addScalarAgg(SQL_MIN_DISTINCT, SCALAR_SQL_MIN_DISTINCT);

        // SQL SUM
        addAgg(SQL_SUM);
        addAgg(LOCAL_SQL_SUM);
        addAgg(GLOBAL_SQL_SUM);
        addLocalAgg(SQL_SUM, LOCAL_SQL_SUM);
        addIntermediateAgg(SQL_SUM, INTERMEDIATE_SQL_SUM);
        addIntermediateAgg(LOCAL_SQL_SUM, INTERMEDIATE_SQL_SUM);
        addIntermediateAgg(GLOBAL_SQL_SUM, INTERMEDIATE_SQL_SUM);
        addGlobalAgg(SQL_SUM, GLOBAL_SQL_SUM);
        addScalarAgg(SQL_SUM, SCALAR_SQL_SUM);

        addAgg(SERIAL_SQL_SUM);
        addAgg(SERIAL_LOCAL_SQL_SUM);
        addAgg(SERIAL_GLOBAL_SQL_SUM);
        addSerialAgg(SQL_SUM, SERIAL_SQL_SUM);
        addSerialAgg(LOCAL_SQL_SUM, SERIAL_LOCAL_SQL_SUM);
        addSerialAgg(GLOBAL_SQL_SUM, SERIAL_GLOBAL_SQL_SUM);
        addLocalAgg(SERIAL_SQL_SUM, SERIAL_LOCAL_SQL_SUM);
        addIntermediateAgg(SERIAL_SQL_SUM, SERIAL_SQL_SUM);
        addIntermediateAgg(SERIAL_LOCAL_SQL_SUM, SERIAL_INTERMEDIATE_SQL_SUM);
        addIntermediateAgg(SERIAL_GLOBAL_SQL_SUM, SERIAL_INTERMEDIATE_SQL_SUM);
        addGlobalAgg(SERIAL_SQL_SUM, SERIAL_GLOBAL_SQL_SUM);

        // SQL SUM DISTINCT
        addDistinctAgg(SQL_SUM_DISTINCT, SQL_SUM);
        addScalarAgg(SQL_SUM_DISTINCT, SCALAR_SQL_SUM_DISTINCT);

        // SQL MEDIAN
        addAgg(SQL_MEDIAN);
        addAgg(LOCAL_SQL_MEDIAN);
        addAgg(GLOBAL_SQL_MEDIAN);

        addLocalAgg(SQL_MEDIAN, LOCAL_SQL_MEDIAN);

        addIntermediateAgg(SQL_MEDIAN, INTERMEDIATE_SQL_MEDIAN);
        addIntermediateAgg(LOCAL_SQL_MEDIAN, INTERMEDIATE_SQL_MEDIAN);
        addIntermediateAgg(GLOBAL_SQL_MEDIAN, INTERMEDIATE_SQL_MEDIAN);

        addGlobalAgg(SQL_MEDIAN, GLOBAL_SQL_MEDIAN);

        addScalarAgg(MEDIAN, SCALAR_MEDIAN);
        addScalarAgg(SQL_MEDIAN, SCALAR_SQL_MEDIAN);

        registerAggFunctionProperties(SCALAR_SQL_MEDIAN, AggregateFunctionProperty.NO_FRAME_CLAUSE,
                AggregateFunctionProperty.NO_ORDER_CLAUSE);

        // SPATIAL AGGREGATES

        addAgg(ST_UNION_AGG);
        addLocalAgg(ST_UNION_AGG, ST_UNION_AGG);
        addIntermediateAgg(ST_UNION_AGG, ST_UNION_AGG);
        addGlobalAgg(ST_UNION_AGG, ST_UNION_AGG);
        addScalarAgg(ST_UNION_AGG, SCALAR_ST_UNION_AGG);
        addDistinctAgg(ST_UNION_AGG_DISTINCT, ST_UNION_AGG);
        addScalarAgg(ST_UNION_AGG_DISTINCT, SCALAR_ST_UNION_AGG_DISTINCT);

        addAgg(ST_UNION_SQL_AGG);
        addLocalAgg(ST_UNION_SQL_AGG, ST_UNION_SQL_AGG);
        addIntermediateAgg(ST_UNION_SQL_AGG, ST_UNION_SQL_AGG);
        addGlobalAgg(ST_UNION_SQL_AGG, ST_UNION_SQL_AGG);
        addScalarAgg(ST_UNION_SQL_AGG, SCALAR_ST_UNION_SQL_AGG);
        addDistinctAgg(ST_UNION_SQL_AGG_DISTINCT, ST_UNION_SQL_AGG);
        addScalarAgg(ST_UNION_SQL_AGG_DISTINCT, SCALAR_ST_UNION_SQL_AGG_DISTINCT);

        // SQL UNION MBR
        addAgg(SQL_UNION_MBR);
        addAgg(LOCAL_SQL_UNION_MBR);
        addAgg(GLOBAL_SQL_UNION_MBR);
        addLocalAgg(SQL_UNION_MBR, LOCAL_SQL_UNION_MBR);
        addIntermediateAgg(LOCAL_SQL_UNION_MBR, INTERMEDIATE_SQL_UNION_MBR);
        addIntermediateAgg(GLOBAL_SQL_UNION_MBR, GLOBAL_SQL_UNION_MBR);
        addIntermediateAgg(SQL_UNION_MBR, GLOBAL_SQL_UNION_MBR);
        addGlobalAgg(SQL_UNION_MBR, GLOBAL_SQL_UNION_MBR);

        addScalarAgg(SQL_UNION_MBR, SCALAR_SQL_UNION_MBR);
    }