public final class AggregatePushDownSpec extends SourceAbilitySpecBase
SourceAbilitySpec
that can not only serialize/deserialize the aggregation
to/from JSON, but also can push the local aggregate into a SupportsAggregatePushDown
.Modifier and Type | Field and Description |
---|---|
static String |
FIELD_NAME_AGGREGATE_CALLS |
static String |
FIELD_NAME_GROUPING_SETS |
static String |
FIELD_NAME_INPUT_TYPE |
FIELD_NAME_PRODUCED_TYPE
Constructor and Description |
---|
AggregatePushDownSpec(RowType inputType,
List<int[]> groupingSets,
List<org.apache.calcite.rel.core.AggregateCall> aggregateCalls,
RowType producedType) |
Modifier and Type | Method and Description |
---|---|
void |
apply(DynamicTableSource tableSource,
SourceAbilityContext context)
Apply the ability to the given
DynamicTableSource . |
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.
|
getProducedType
public static final String FIELD_NAME_INPUT_TYPE
public static final String FIELD_NAME_GROUPING_SETS
public static final String FIELD_NAME_AGGREGATE_CALLS
public void apply(DynamicTableSource tableSource, SourceAbilityContext context)
SourceAbilitySpec
DynamicTableSource
.public String getDigests(SourceAbilityContext context)
SourceAbilitySpec
context
- The context about the source.public static boolean apply(RowType inputType, List<int[]> groupingSets, List<org.apache.calcite.rel.core.AggregateCall> aggregateCalls, RowType producedType, DynamicTableSource tableSource, SourceAbilityContext context)
public boolean equals(Object o)
equals
in class SourceAbilitySpecBase
public int hashCode()
hashCode
in class SourceAbilitySpecBase
public boolean needAdjustFieldReferenceAfterProjection()
SourceAbilitySpec
RexNode
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.Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.