@Internal @Value.Enclosing public class PushFilterPastChangelogNormalizeRule extends org.apache.calcite.plan.RelRule<PushFilterPastChangelogNormalizeRule.Config>
ChangelogNormalize
operator to reduce its state size.
This rule looks for Calc → ChangelogNormalize where the Calc
contains a filter condition. The condition is transformed into CNF and then each conjunction is
tested for whether it affects only primary key columns. If such conditions 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 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 |
PushFilterPastChangelogNormalizeRule.Config
Configuration for
PushFilterPastChangelogNormalizeRule . |
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 |
---|
PushFilterPastChangelogNormalizeRule(PushFilterPastChangelogNormalizeRule.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, unordered
public PushFilterPastChangelogNormalizeRule(PushFilterPastChangelogNormalizeRule.Config config)
Copyright © 2014–2023 The Apache Software Foundation. All rights reserved.