Open
Description
Among others, RecordQueryAggregateIndexPlan
uses these two fields:
// TODO the following value should not be part of this plan
@Nonnull
private final Value resultValue;
// TODO the following value should not be part of this plan
@Nonnull
private final Value groupByResultValue;
As the TODO
s indicate these two fields should not be part of this class. Nothing in this class actually needs these fields. They are only used as breadcrumbs to other planner logic later. Those same breadcrumbs are also accessible via the match candidate that this class is linked to in planned plans and can be retrieved by calling:
public Optional<? extends MatchCandidate> getMatchCandidateMaybe() {
which delegates to the encapsulated index plan.
All users of the two fields should be rewritten to use the match candidate directly. Unfortunately, removing the fields entirely will need a plan hash bump.