@Internal @Value.Enclosing public class PushCalcPastChangelogNormalizeRule extends org.apache.calcite.plan.RelRule<PushCalcPastChangelogNormalizeRule.Config>
ChangelogNormalize operator to reduce its state size.
This rule looks for Calc → ChangelogNormalize where the Calc
contains a filter condition or a projection. The condition is transformed into CNF and then each
conjunction is tested for whether it affects only primary key columns. If such conditions or
projection exist, they are moved into a new, separate Calc and pushed through the
ChangelogNormalize operator. ChangelogNormalize keeps state for every unique key it encounters,
thus pushing filters on the primary key and projection on values in front of it helps reduce the
size of its state.
Note that pushing primary key filters is safe to do, but pushing any other filters can lead to incorrect results.
| Modifier and Type | Class and Description |
|---|---|
static interface |
PushCalcPastChangelogNormalizeRule.Config
Configuration for
PushCalcPastChangelogNormalizeRule. |
org.apache.calcite.plan.RelRule.Done, org.apache.calcite.plan.RelRule.MatchHandler<R extends org.apache.calcite.plan.RelOptRule>, org.apache.calcite.plan.RelRule.OperandBuilder, org.apache.calcite.plan.RelRule.OperandDetailBuilder<R extends org.apache.calcite.rel.RelNode>, org.apache.calcite.plan.RelRule.OperandTransform| Modifier and Type | Field and Description |
|---|---|
static org.apache.calcite.plan.RelOptRule |
INSTANCE |
| Constructor and Description |
|---|
PushCalcPastChangelogNormalizeRule(PushCalcPastChangelogNormalizeRule.Config config) |
| Modifier and Type | Method and Description |
|---|---|
void |
onMatch(org.apache.calcite.plan.RelOptRuleCall call) |
any, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unorderedpublic PushCalcPastChangelogNormalizeRule(PushCalcPastChangelogNormalizeRule.Config config)
Copyright © 2014–2025 The Apache Software Foundation. All rights reserved.