Enum MainCapability
- java.lang.Object
-
- java.lang.Enum<MainCapability>
-
- com.exasol.adapter.capabilities.MainCapability
-
- All Implemented Interfaces:
Serializable
,Comparable<MainCapability>
public enum MainCapability extends Enum<MainCapability>
This is an enumeration of the main capabilities supported by the EXASOL Virtual Schema Framework.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description AGGREGATE_GROUP_BY_COLUMN
Support aggregations with a group by clause consisting of columns.AGGREGATE_GROUP_BY_EXPRESSION
Support aggregations with a group by clause that contains at least one expression.AGGREGATE_GROUP_BY_TUPLE
Support aggregations with a group by clause with multiple group by columns or expressions.AGGREGATE_HAVING
Support aggregations with a having clause.AGGREGATE_SINGLE_GROUP
Support aggregations with a single group.FILTER_EXPRESSIONS
Support filter expressions.JOIN
Support for joins.JOIN_CONDITION_ALL
Support joins with any conditions.JOIN_CONDITION_EQUI
Support joins with equi-join conditions.JOIN_TYPE_FULL_OUTER
Support full outer joins.JOIN_TYPE_INNER
Support inner joins.JOIN_TYPE_LEFT_OUTER
Support left outer joins.JOIN_TYPE_RIGHT_OUTER
Support right outer joins.LIMIT
Support to limit the number of result rows.LIMIT_WITH_OFFSET
Support to limit the number of result rows including an offset.ORDER_BY_COLUMN
Support to order the result by columns.ORDER_BY_EXPRESSION
Support to order the result by expressions.SELECTLIST_EXPRESSIONS
Support expressions in the select list; Additional capabilities are required depending on the expression.SELECTLIST_PROJECTION
Support projections, i.e.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static MainCapability
valueOf(String name)
Returns the enum constant of this type with the specified name.static MainCapability[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
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 nameNullPointerException
- if the argument is null
-
-