Enum MainCapability

    • Enum Constant Detail

      • SELECTLIST_PROJECTION

        public static final MainCapability SELECTLIST_PROJECTION
        Support projections, i.e. request only a subset of all columns of the table.

        Example: SELECT a FROM t;

      • SELECTLIST_EXPRESSIONS

        public static final MainCapability SELECTLIST_EXPRESSIONS
        Support expressions in the select list; Additional capabilities are required depending on the expression.

        Attention: This capability contains a subset of SELECTLIST_PROJECTION. It allows projections if the select list contains an expression.

        Example: SELECT a+1, ucase(b) FROM t;

      • FILTER_EXPRESSIONS

        public static final MainCapability FILTER_EXPRESSIONS
        Support filter expressions. Additional capabilities are required depending on the expression.

        Example: SELECT * FROM t WHERE a>2

      • AGGREGATE_SINGLE_GROUP

        public static final MainCapability AGGREGATE_SINGLE_GROUP
        Support aggregations with a single group. This happens when an aggregation-function is used without a group by clause.

        Example: SELECT min(a) FROM t;

      • AGGREGATE_GROUP_BY_COLUMN

        public static final MainCapability AGGREGATE_GROUP_BY_COLUMN
        Support aggregations with a group by clause consisting of columns.

        Attention: Requires the additional capability AGGREGATE_GROUP_BY_TUPLE to support multiple columns.

        Example 1: GROUP BY A (needs AGGREGATE_GROUP_BY_COLUMN)

        Example 2: GROUP BY A, B (needs AGGREGATE_GROUP_BY_COLUMN and AGGREGATE_GROUP_BY_TUPLE)

      • AGGREGATE_GROUP_BY_EXPRESSION

        public static final MainCapability AGGREGATE_GROUP_BY_EXPRESSION
        Support aggregations with a group by clause that contains at least one expression.

        Attention: Requires the additional capability AGGREGATE_GROUP_BY_TUPLE to support multiple columns.

        Example 1: GROUP BY A + 1 (needs AGGREGATE_GROUP_BY_EXPRESSION)

        Example 2: GROUP BY A + 1, B (needs AGGREGATE_GROUP_BY_EXPRESSION and AGGREGATE_GROUP_BY_TUPLE)

      • AGGREGATE_GROUP_BY_TUPLE

        public static final MainCapability AGGREGATE_GROUP_BY_TUPLE
        Support aggregations with a group by clause with multiple group by columns or expressions. Note that you additionally need AGGREGATE_GROUP_BY_EXPRESSION or AGGREGATE_GROUP_BY_COLUMN.

        See AGGREGATE_GROUP_BY_COLUMN and AGGREGATE_GROUP_BY_EXPRESSION for examples.

      • AGGREGATE_HAVING

        public static final MainCapability AGGREGATE_HAVING
        Support aggregations with a having clause. Additional capabilities might be required depending on the expression.

        Example: SELECT a, min(b) FROM t GROUP BY a HAVING min(b)>10;

      • ORDER_BY_COLUMN

        public static final MainCapability ORDER_BY_COLUMN
        Support to order the result by columns.

        Attention: This includes the capability to specify NULLS FIRST/LAST and ASC/DESC.

        Example: SELECT a, b FROM t ORDER BY a, b DESC NULLS FIRST;

      • ORDER_BY_EXPRESSION

        public static final MainCapability ORDER_BY_EXPRESSION
        Support to order the result by expressions.

        Attention: This includes the capability to specify NULLS FIRST/LAST and ASC/DESC

        Example: SELECT a FROM t ORDER BY abs(a) ASC NULLS LAST;

      • LIMIT

        public static final MainCapability LIMIT
        Support to limit the number of result rows. Often used together with ordering.

        Example: SELECT * FROM t 0

      • LIMIT_WITH_OFFSET

        public static final MainCapability LIMIT_WITH_OFFSET
        Support to limit the number of result rows including an offset.

        Example: SELECT * FROM t LIMIT 100 OFFSET 10;

      • JOIN

        public static final MainCapability JOIN
        Support for joins. If you don't support this capability no joins will be generated in the push-down.

        Attention: In order to generate joins in the push-down you additionally have to return at least one capability for join type and join condition.

      • JOIN_TYPE_INNER

        public static final MainCapability JOIN_TYPE_INNER
        Support inner joins. Example: SELECT * FROM t INNER JOIN u ON t.id = u.id
      • JOIN_TYPE_LEFT_OUTER

        public static final MainCapability JOIN_TYPE_LEFT_OUTER
        Support left outer joins. Example: SELECT * FROM t LEFT OUTER JOIN u ON t.id = u.id
      • JOIN_TYPE_RIGHT_OUTER

        public static final MainCapability JOIN_TYPE_RIGHT_OUTER
        Support right outer joins. Example: SELECT * FROM t RIGHT OUTER JOIN u ON t.id = u.id
      • JOIN_TYPE_FULL_OUTER

        public static final MainCapability JOIN_TYPE_FULL_OUTER
        Support full outer joins. Example: SELECT * FROM t FULL OUTER JOIN u ON t.id = u.id
      • JOIN_CONDITION_EQUI

        public static final MainCapability JOIN_CONDITION_EQUI
        Support joins with equi-join conditions. Example: SELECT * FROM t INNER JOIN u ON t.id = u.id SELECT * FROM t INNER JOIN u ON t.id = u.id + 3
      • JOIN_CONDITION_ALL

        public static final MainCapability JOIN_CONDITION_ALL
        Support joins with any conditions. Example: SELECT * FROM t INNER JOIN u ON t.x between(u.x, u.y)
    • Method Detail

      • values

        public static MainCapability[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (MainCapability c : MainCapability.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static MainCapability valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null