Class AggregatePushDownSpec
- java.lang.Object
-
- org.apache.flink.table.planner.plan.abilities.source.SourceAbilitySpecBase
-
- org.apache.flink.table.planner.plan.abilities.source.AggregatePushDownSpec
-
- All Implemented Interfaces:
SourceAbilitySpec
public final class AggregatePushDownSpec extends SourceAbilitySpecBase
A sub-class ofSourceAbilitySpec
that can not only serialize/deserialize the aggregation to/from JSON, but also can push the local aggregate into aSupportsAggregatePushDown
.
-
-
Field Summary
Fields Modifier and Type Field Description static String
FIELD_NAME_AGGREGATE_CALLS
static String
FIELD_NAME_GROUPING_SETS
static String
FIELD_NAME_INPUT_TYPE
-
Fields inherited from class org.apache.flink.table.planner.plan.abilities.source.SourceAbilitySpecBase
FIELD_NAME_PRODUCED_TYPE
-
-
Constructor Summary
Constructors Constructor Description AggregatePushDownSpec(RowType inputType, List<int[]> groupingSets, List<org.apache.calcite.rel.core.AggregateCall> aggregateCalls, RowType producedType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
apply(DynamicTableSource tableSource, SourceAbilityContext context)
Apply the ability to the givenDynamicTableSource
.static boolean
apply(RowType inputType, List<int[]> groupingSets, List<org.apache.calcite.rel.core.AggregateCall> aggregateCalls, RowType producedType, DynamicTableSource tableSource, SourceAbilityContext context)
boolean
equals(Object o)
String
getDigests(SourceAbilityContext context)
Additional digests to generate when this spec is applied to the source.int
hashCode()
boolean
needAdjustFieldReferenceAfterProjection()
Does this spec needs adjust field reference after projection.-
Methods inherited from class org.apache.flink.table.planner.plan.abilities.source.SourceAbilitySpecBase
getProducedType
-
-
-
-
Field Detail
-
FIELD_NAME_INPUT_TYPE
public static final String FIELD_NAME_INPUT_TYPE
- See Also:
- Constant Field Values
-
FIELD_NAME_GROUPING_SETS
public static final String FIELD_NAME_GROUPING_SETS
- See Also:
- Constant Field Values
-
FIELD_NAME_AGGREGATE_CALLS
public static final String FIELD_NAME_AGGREGATE_CALLS
- See Also:
- Constant Field Values
-
-
Method Detail
-
apply
public void apply(DynamicTableSource tableSource, SourceAbilityContext context)
Description copied from interface:SourceAbilitySpec
Apply the ability to the givenDynamicTableSource
.
-
getDigests
public String getDigests(SourceAbilityContext context)
Description copied from interface:SourceAbilitySpec
Additional digests to generate when this spec is applied to the source.- Parameters:
context
- The context about the source.
-
apply
public static boolean apply(RowType inputType, List<int[]> groupingSets, List<org.apache.calcite.rel.core.AggregateCall> aggregateCalls, RowType producedType, DynamicTableSource tableSource, SourceAbilityContext context)
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classSourceAbilitySpecBase
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classSourceAbilitySpecBase
-
needAdjustFieldReferenceAfterProjection
public boolean needAdjustFieldReferenceAfterProjection()
Description copied from interface:SourceAbilitySpec
Does this spec needs adjust field reference after projection. If the spec containsRexNode
or references fields in scan table, the referenced field indices maybe changed after projection pushdown with scan reuse. Under such case, this method need to return true to notify planner doesn't reuse the scan.
-
-