Skip to content

Commit 6fa2c04

Browse files
committed
addressing rebase fallout
1 parent 0151120 commit 6fa2c04

File tree

84 files changed

+4470
-4568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+4470
-4568
lines changed

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/AggregateIndexMatchCandidate.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,8 @@ public RecordQueryPlan toEquivalentPlan(@Nonnull final PartialMatch partialMatch
459459

460460
return RecordQueryStreamingAggregationPlan.ofFlattened(aggregateIndexScanQuantifier,
461461
RecordConstructorValue.ofColumns(rollUpGroupingColumnsBuilder.build(), resultType.isNullable()),
462-
rollUpAggregateValueOptional.orElseThrow(() -> new RecordCoreException("unknown rollup operation")));
462+
rollUpAggregateValueOptional.orElseThrow(() -> new RecordCoreException("unknown rollup operation")),
463+
RecordQueryStreamingAggregationPlan.SerializationMode.TO_NEW);
463464
}
464465
return plan;
465466
}

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/MatchInfo.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package com.apple.foundationdb.record.query.plan.cascades;
2222

23+
import com.apple.foundationdb.record.EvaluationContext;
2324
import com.apple.foundationdb.record.query.plan.QueryPlanConstraint;
2425
import com.apple.foundationdb.record.query.plan.cascades.OrderingPart.MatchedOrderingPart;
2526
import com.apple.foundationdb.record.query.plan.cascades.PredicateMultiMap.PredicateMapping;
@@ -114,6 +115,7 @@ static ImmutableBiMap<Value, Value> adjustMatchedValueMap(@Nonnull final Correla
114115
final var candidateLowerResultValue = candidateLowerExpression.getResultValue();
115116
final var candidatePullUpMap =
116117
candidateLowerResultValue.pullUp(ImmutableList.of(candidateAggregateValue),
118+
EvaluationContext.empty(),
117119
AliasMap.emptyMap(),
118120
Sets.difference(candidateAggregateValue.getCorrelatedToWithoutChildren(),
119121
candidateLowerExpression.getCorrelatedTo()),
@@ -499,7 +501,8 @@ public static GroupByMappings pullUpGroupByMappings(@Nonnull final PartialMatch
499501
for (final var unmatchedAggregateMapEntry : groupByMappings.getUnmatchedAggregatesMap().entrySet()) {
500502
final var queryAggregateValue = unmatchedAggregateMapEntry.getValue();
501503
final var pullUpMap =
502-
resultValue.pullUp(ImmutableList.of(queryAggregateValue), AliasMap.emptyMap(),
504+
resultValue.pullUp(ImmutableList.of(queryAggregateValue), EvaluationContext.empty(),
505+
AliasMap.emptyMap(),
503506
Sets.difference(queryAggregateValue.getCorrelatedToWithoutChildren(),
504507
queryExpression.getCorrelatedTo()), queryAlias);
505508
final var pulledUpQueryAggregateValue = pullUpMap.get(queryAggregateValue);
@@ -522,8 +525,8 @@ private static ImmutableBiMap<Value, Value> pullUpMatchedValueMap(@Nonnull final
522525
for (final var entry : matchedValueMap.entrySet()) {
523526
final var queryValue = entry.getKey();
524527
final var pullUpMap =
525-
queryResultValue.pullUp(ImmutableList.of(queryValue), AliasMap.emptyMap(), constantAliases,
526-
queryAlias);
528+
queryResultValue.pullUp(ImmutableList.of(queryValue), EvaluationContext.empty(),
529+
AliasMap.emptyMap(), constantAliases, queryAlias);
527530
final Value pulledUpQueryValue = pullUpMap.get(queryValue);
528531
if (pulledUpQueryValue == null) {
529532
continue;
@@ -535,6 +538,7 @@ private static ImmutableBiMap<Value, Value> pullUpMatchedValueMap(@Nonnull final
535538
final var candidateLowerResultValue = candidateLowerExpression.getResultValue();
536539
final var candidatePullUpMap =
537540
candidateLowerResultValue.pullUp(ImmutableList.of(candidateAggregateValue),
541+
EvaluationContext.empty(),
538542
AliasMap.emptyMap(),
539543
Sets.difference(candidateAggregateValue.getCorrelatedToWithoutChildren(),
540544
candidateLowerExpression.getCorrelatedTo()),

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/PredicateMultiMap.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import com.google.common.base.Verify;
3434
import com.google.common.collect.BiMap;
3535
import com.google.common.collect.ImmutableList;
36-
import com.apple.foundationdb.record.query.plan.cascades.values.translation.TranslationMap;
3736
import com.google.common.collect.Multimaps;
3837
import com.google.common.collect.SetMultimap;
3938
import com.google.common.collect.Sets;
@@ -373,13 +372,6 @@ ResultCompensationFunction amend(@Nonnull BiMap<CorrelationIdentifier, Value> un
373372
@Nonnull
374373
Value applyCompensationForResult(@Nonnull TranslationMap translationMap);
375374

376-
@Nonnull
377-
static ResultCompensationFunction ofTranslation(@Nonnull final Value resultValue,
378-
@Nonnull final CorrelationIdentifier nestingAlias) {
379-
return of(baseAlias -> resultValue.translateCorrelations(
380-
TranslationMap.ofAliases(nestingAlias, baseAlias), false));
381-
}
382-
383375
@Nonnull
384376
static ResultCompensationFunction ofValue(@Nonnull final Value value) {
385377
return ofValue(value, false);

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/Quantifier.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public List<Column<? extends FieldValue>> computeFlowedColumns() {
240240
@Override
241241
@Nonnull
242242
public Optional<RegularTranslationMap> pullUpMaxMatchMapMaybe(@Nonnull final MaxMatchMap maxMatchMap,
243-
@Nonnull final CorrelationIdentifier candidateAlias) {
243+
@Nonnull final CorrelationIdentifier candidateAlias) {
244244
return maxMatchMap.pullUpMaybe(getAlias(), candidateAlias);
245245
}
246246

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/expressions/GroupByExpression.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,6 @@
8787
import java.util.function.BiFunction;
8888
import java.util.function.Supplier;
8989

90-
import static com.apple.foundationdb.record.query.plan.cascades.ConstrainedBoolean.alwaysTrue;
91-
import static com.apple.foundationdb.record.query.plan.cascades.ConstrainedBoolean.falseValue;
92-
9390
/**
9491
* A logical {@code group by} expression that represents grouping incoming tuples and aggregating each group.
9592
*/
@@ -347,7 +344,7 @@ public Iterable<MatchInfo> subsumedBy(@Nonnull final RelationalExpression candid
347344
ImmutableBiMap.<CorrelationIdentifier, Value>builder();
348345
final var unmatchedTranslatedAggregatesValueMapBuilder =
349346
ImmutableMap.<Value, CorrelationIdentifier>builder();
350-
var subsumedAggregations = BooleanWithConstraint.falseValue();
347+
var subsumedAggregations = ConstrainedBoolean.falseValue();
351348
for (final var primitiveAggregateValue : aggregateValues) {
352349
final var translatedPrimitiveAggregateValue =
353350
primitiveAggregateValue.translateCorrelations(translationMap, true);
@@ -369,7 +366,7 @@ public Iterable<MatchInfo> subsumedBy(@Nonnull final RelationalExpression candid
369366
}
370367

371368
final var subsumedGroupingsResult =
372-
subsumedGroupings(candidateInnerQuantifier,
369+
groupingSubsumedBy(candidateInnerQuantifier,
373370
Objects.requireNonNull(partialMatchMap.getUnwrapped(innerQuantifier)),
374371
candidateGroupingValue, translationMap, valueEquivalence, evaluationContext);
375372
final var subsumedGroupings = Objects.requireNonNull(subsumedGroupingsResult.getSubsumedGroups());
@@ -423,7 +420,7 @@ private SubsumedGroupingsResult groupingSubsumedBy(@Nonnull final Quantifier can
423420
@Nonnull final ValueEquivalence valueEquivalence,
424421
@Nonnull final EvaluationContext evaluationContext) {
425422
if (groupingValue == null && candidateGroupingValue == null) {
426-
return SubsumedGroupingsResult.withoutRollUp(BooleanWithConstraint.alwaysTrue(), ImmutableBiMap.of());
423+
return SubsumedGroupingsResult.withoutRollUp(ConstrainedBoolean.alwaysTrue(), ImmutableBiMap.of());
427424
}
428425
if (candidateGroupingValue == null) {
429426
return SubsumedGroupingsResult.noSubsumption();
@@ -441,8 +438,8 @@ private SubsumedGroupingsResult groupingSubsumedBy(@Nonnull final Quantifier can
441438
.collect(ImmutableList.toImmutableList());
442439
for (final var primitiveGroupingValue : groupingValues) {
443440
final var translatedPrimitiveGroupingValue =
444-
primitiveGroupingValue.translateCorrelations(translationMap, true)
445-
.simplify(AliasMap.emptyMap(), ImmutableSet.of());
441+
primitiveGroupingValue.translateCorrelations(translationMap, true);
442+
// TODO is this needed?.simplify(evaluationContext, AliasMap.emptyMap(), ImmutableSet.of());
446443
translatedGroupingsValuesBuilder.add(translatedPrimitiveGroupingValue);
447444
matchedGroupingsMapBuilder.put(primitiveGroupingValue, translatedPrimitiveGroupingValue);
448445
}
@@ -490,7 +487,7 @@ private SubsumedGroupingsResult groupingSubsumedBy(@Nonnull final Quantifier can
490487
// 3. For each candidate grouping value in the set of (yet) unmatched candidate group values, try to find a
491488
// predicate that binds that groupingValue.
492489
//
493-
var booleanWithConstraint = BooleanWithConstraint.alwaysTrue();
490+
var booleanWithConstraint = ConstrainedBoolean.alwaysTrue();
494491
for (final var translatedGroupingValue : translatedGroupingValuesSet) {
495492
var found = false;
496493

@@ -671,11 +668,11 @@ public Compensation compensate(@Nonnull final PartialMatch partialMatch,
671668
final var pulledUpTranslatedResultValue = pulledUpTranslatedResultValueOptional.get();
672669

673670
if (QuantifiedObjectValue.isSimpleQuantifiedObjectValueOver(pulledUpTranslatedResultValue,
674-
rootPullUp.getCandidateAlias())) {
671+
rootOfMatchPullUp.getCandidateAlias())) {
675672
resultCompensationFunction = ResultCompensationFunction.noCompensationNeeded();
676673
} else {
677674
resultCompensationFunction =
678-
ResultCompensationFunction.ofTranslation(pulledUpTranslatedResultValue, rootPullUp.getCandidateAlias());
675+
ResultCompensationFunction.ofValue(pulledUpTranslatedResultValue);
679676
}
680677
isCompensationImpossible |= resultCompensationFunction.isImpossible();
681678

@@ -809,13 +806,13 @@ public static CorrelationIdentifier uniqueId() {
809806

810807
private static class SubsumedGroupingsResult {
811808
@Nonnull
812-
private final BooleanWithConstraint subsumedGroups;
809+
private final ConstrainedBoolean subsumedGroups;
813810
@Nonnull
814811
private final BiMap<Value, Value> matchedGroupingsMap;
815812
@Nullable
816813
private final List<Value> rollUpToValues;
817814

818-
private SubsumedGroupingsResult(@Nonnull final BooleanWithConstraint subsumedGroups,
815+
private SubsumedGroupingsResult(@Nonnull final ConstrainedBoolean subsumedGroups,
819816
@Nonnull final BiMap<Value, Value> matchedGroupingsMap,
820817
@Nullable final List<Value> rollUpToValues) {
821818
this.subsumedGroups = subsumedGroups;
@@ -824,7 +821,7 @@ private SubsumedGroupingsResult(@Nonnull final BooleanWithConstraint subsumedGro
824821
}
825822

826823
@Nonnull
827-
public BooleanWithConstraint getSubsumedGroups() {
824+
public ConstrainedBoolean getSubsumedGroups() {
828825
return subsumedGroups;
829826
}
830827

@@ -840,17 +837,17 @@ public List<Value> getRollUpToValues() {
840837

841838
@Nonnull
842839
public static SubsumedGroupingsResult noSubsumption() {
843-
return of(BooleanWithConstraint.falseValue(), ImmutableBiMap.of(), null);
840+
return of(ConstrainedBoolean.falseValue(), ImmutableBiMap.of(), null);
844841
}
845842

846843
@Nonnull
847-
public static SubsumedGroupingsResult withoutRollUp(@Nonnull final BooleanWithConstraint subsumedGroups,
844+
public static SubsumedGroupingsResult withoutRollUp(@Nonnull final ConstrainedBoolean subsumedGroups,
848845
@Nonnull final BiMap<Value, Value> matchedGroupingsMap) {
849846
return of(subsumedGroups, matchedGroupingsMap, null);
850847
}
851848

852849
@Nonnull
853-
public static SubsumedGroupingsResult of(@Nonnull final BooleanWithConstraint subsumedGroups,
850+
public static SubsumedGroupingsResult of(@Nonnull final ConstrainedBoolean subsumedGroups,
854851
@Nonnull final BiMap<Value, Value> matchedGroupingsMap,
855852
@Nullable final List<Value> rollUpToValues) {
856853
return new SubsumedGroupingsResult(subsumedGroups, ImmutableBiMap.copyOf(matchedGroupingsMap),

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/expressions/LogicalTypeFilterExpression.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,11 +221,11 @@ public Compensation compensate(@Nonnull final PartialMatch partialMatch,
221221
final var pulledUpTranslatedResultValue = pulledUpTranslatedResultValueOptional.get();
222222

223223
if (QuantifiedObjectValue.isSimpleQuantifiedObjectValueOver(pulledUpTranslatedResultValue,
224-
rootPullUp.getCandidateAlias())) {
224+
rootOfMatchPullUp.getCandidateAlias())) {
225225
resultCompensationFunction = ResultCompensationFunction.noCompensationNeeded();
226226
} else {
227227
resultCompensationFunction =
228-
ResultCompensationFunction.ofTranslation(pulledUpTranslatedResultValue, rootPullUp.getCandidateAlias());
228+
ResultCompensationFunction.ofValue(pulledUpTranslatedResultValue);
229229
}
230230
isCompensationImpossible |= resultCompensationFunction.isImpossible();
231231

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/expressions/SelectExpression.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -881,11 +881,11 @@ public Compensation compensate(@Nonnull final PartialMatch partialMatch,
881881
final var pulledUpTranslatedResultValue = pulledUpTranslatedResultValueOptional.get();
882882

883883
if (QuantifiedObjectValue.isSimpleQuantifiedObjectValueOver(pulledUpTranslatedResultValue,
884-
rootPullUp.getCandidateAlias())) {
884+
rootOfMatchPullUp.getCandidateAlias())) {
885885
resultCompensationFunction = ResultCompensationFunction.noCompensationNeeded();
886886
} else {
887887
resultCompensationFunction =
888-
ResultCompensationFunction.ofTranslation(pulledUpTranslatedResultValue, rootPullUp.getCandidateAlias());
888+
ResultCompensationFunction.ofValue(pulledUpTranslatedResultValue);
889889
}
890890
isAnyCompensationFunctionImpossible |= resultCompensationFunction.isImpossible();
891891

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/properties/DerivationsProperty.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import com.apple.foundationdb.record.query.plan.cascades.values.QueriedValue;
4444
import com.apple.foundationdb.record.query.plan.cascades.values.ThrowsValue;
4545
import com.apple.foundationdb.record.query.plan.cascades.values.Value;
46+
import com.apple.foundationdb.record.query.plan.cascades.values.translation.RegularTranslationMap;
4647
import com.apple.foundationdb.record.query.plan.cascades.values.translation.TranslationMap;
4748
import com.apple.foundationdb.record.query.plan.plans.RecordQueryAggregateIndexPlan;
4849
import com.apple.foundationdb.record.query.plan.plans.RecordQueryComparatorPlan;
@@ -584,7 +585,7 @@ public Derivations visitMultiIntersectionOnValuesPlan(@Nonnull final RecordQuery
584585
CrossProduct.crossProduct(resultDerivationsBuilder.build());
585586

586587
for (final var element : crossProductIterable) {
587-
final var translationMapBuilder = TranslationMap.builder();
588+
final var translationMapBuilder = RegularTranslationMap.builder();
588589
for (int i = 0; i < quantifiers.size(); i++) {
589590
final var quantifier = quantifiers.get(i);
590591
final var derivationResultValue = element.get(i);

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/rules/AbstractDataAccessRule.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.apple.foundationdb.record.query.plan.cascades.matching.structure.BindingMatcher;
5656
import com.apple.foundationdb.record.query.plan.cascades.properties.CardinalitiesProperty.Cardinality;
5757
import com.apple.foundationdb.record.query.plan.cascades.values.Value;
58+
import com.apple.foundationdb.record.query.plan.cascades.values.translation.RegularTranslationMap;
5859
import com.apple.foundationdb.record.query.plan.cascades.values.translation.TranslationMap;
5960
import com.apple.foundationdb.record.query.plan.plans.RecordQueryPlan;
6061
import com.apple.foundationdb.record.query.plan.plans.RecordQueryUnorderedPrimaryKeyDistinctPlan;
@@ -686,7 +687,7 @@ private static List<SingleMatchedAccess> prepareMatchesAndCompensations(final @N
686687
}
687688

688689
@Nonnull
689-
private static Optional<TranslationMap> computeTopToTopTranslationMapMaybe(final PartialMatch partialMatch) {
690+
private static Optional<RegularTranslationMap> computeTopToTopTranslationMapMaybe(final PartialMatch partialMatch) {
690691
final var maxMatchMap = partialMatch.getMatchInfo().getMaxMatchMap();
691692
return maxMatchMap.pullUpMaybe(Quantifier.current(), Quantifier.current());
692693
}
@@ -1007,6 +1008,9 @@ private static Optional<Compensation.WithSelectCompensation> compensationMaybe(@
10071008

10081009
@Nonnull
10091010
private static Optional<Set<CorrelationIdentifier>> unmatchedIdsMaybe(@Nonnull final IntersectionInfo intersectionInfo) {
1011+
if (!intersectionInfo.getCompensation().isNeeded()) {
1012+
return Optional.of(ImmutableSet.of());
1013+
}
10101014
final var compensationOptional = compensationMaybe(intersectionInfo);
10111015
return compensationOptional.map(compensation ->
10121016
compensation.getGroupByMappings().getUnmatchedAggregatesMap().keySet());

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/rules/AggregateDataAccessRule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.apple.foundationdb.record.query.plan.cascades.values.RecordConstructorValue;
4242
import com.apple.foundationdb.record.query.plan.cascades.values.Value;
4343
import com.apple.foundationdb.record.query.plan.cascades.values.Values;
44+
import com.apple.foundationdb.record.query.plan.cascades.values.translation.RegularTranslationMap;
4445
import com.apple.foundationdb.record.query.plan.cascades.values.translation.TranslationMap;
4546
import com.apple.foundationdb.record.query.plan.plans.RecordQueryMultiIntersectionOnValuesPlan;
4647
import com.apple.foundationdb.record.query.plan.plans.RecordQueryPlan;
@@ -361,7 +362,7 @@ private static TranslationMap computeTranslationMap(@Nonnull final CorrelationId
361362
@Nonnull final List<CorrelationIdentifier> candidateTopAliases,
362363
@Nonnull final Type.Record intersectionResultType,
363364
final int numGrouped) {
364-
final var builder = TranslationMap.builder();
365+
final var builder = RegularTranslationMap.builder();
365366
final var deconstructedIntersectionValues =
366367
Values.deconstructRecord(QuantifiedObjectValue.of(intersectionAlias, intersectionResultType));
367368
for (int quantifierIndex = 0; quantifierIndex < quantifiers.size(); quantifierIndex++) {

0 commit comments

Comments
 (0)