Skip to content

Commit 32c473f

Browse files
committed
address pr comments
1 parent a4a2288 commit 32c473f

File tree

8 files changed

+207
-206
lines changed

8 files changed

+207
-206
lines changed

src/MongoDB.Driver/Linq/Linq3Implementation/Ast/Expressions/AstExpression.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -602,12 +602,12 @@ public static AstExpression Median(AstExpression input)
602602
return new AstMedianExpression(input);
603603
}
604604

605-
public static AstMedianAccumulatorExpression MedianAccumulator(AstExpression input)
605+
public static AstAccumulatorExpression MedianAccumulator(AstExpression input)
606606
{
607607
return new AstMedianAccumulatorExpression(input);
608608
}
609609

610-
public static AstMedianWindowExpression MedianWindowExpression(AstExpression input, AstWindow window)
610+
public static AstWindowExpression MedianWindowExpression(AstExpression input, AstWindow window)
611611
{
612612
return new AstMedianWindowExpression(input, window);
613613
}
@@ -668,17 +668,17 @@ public static AstExpression Or(params AstExpression[] args)
668668
return new AstNaryExpression(AstNaryOperator.Or, flattenedArgs);
669669
}
670670

671-
public static AstPercentileExpression Percentile(AstExpression input, AstExpression percentiles)
671+
public static AstExpression Percentile(AstExpression input, AstExpression percentiles)
672672
{
673673
return new AstPercentileExpression(input, percentiles);
674674
}
675675

676-
public static AstPercentileAccumulatorExpression PercentileAccumulator(AstExpression input, AstExpression percentiles)
676+
public static AstAccumulatorExpression PercentileAccumulator(AstExpression input, AstExpression percentiles)
677677
{
678678
return new AstPercentileAccumulatorExpression(input, percentiles);
679679
}
680680

681-
public static AstPercentileWindowExpression PercentileWindowExpression(AstExpression input, AstExpression percentiles, AstWindow window)
681+
public static AstWindowExpression PercentileWindowExpression(AstExpression input, AstExpression percentiles, AstWindow window)
682682
{
683683
return new AstPercentileWindowExpression(input, percentiles, window);
684684
}

src/MongoDB.Driver/Linq/Linq3Implementation/Ast/Expressions/AstMedianAccumulatorExpression.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,5 @@ public AstMedianAccumulatorExpression Update(AstExpression input)
5959
}
6060
return new AstMedianAccumulatorExpression(input);
6161
}
62-
6362
}
6463
}

src/MongoDB.Driver/Linq/Linq3Implementation/Ast/Expressions/AstMedianExpression.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,5 @@ public AstMedianExpression Update(AstExpression input)
5959
}
6060
return new AstMedianExpression(input);
6161
}
62-
6362
}
6463
}

src/MongoDB.Driver/Linq/Linq3Implementation/Ast/Optimizers/AstGroupingPipelineOptimizer.cs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -415,19 +415,20 @@ public override AstNode VisitMapExpression(AstMapExpression node)
415415

416416
public override AstNode VisitMedianExpression(AstMedianExpression node)
417417
{
418-
// { $median : { input: { $getField : { input : "$$ROOT", field : "_elements" } }, method: "approximate" } } => { __agg0 : { $median : { input: element, method: "approximate" } } } + "$__agg0"
418+
// { $median : { input: { $getField : { input : "$$ROOT", field : "_elements" } }, method: "approximate" } }
419+
// => { __agg0 : { $median : { input: element, method: "approximate" } } } + "$__agg0"
419420
if (IsElementsField(node.Input))
420421
{
421-
var accumulator = AstExpression.MedianAccumulator(_element);
422-
return CreateGetAccumulatorFieldExpression(accumulator);
422+
var accumulatorExpression = AstExpression.MedianAccumulator(_element);
423+
return CreateGetAccumulatorFieldExpression(accumulatorExpression);
423424
}
424425

425426
// { $median : { input: { $map : { input : { $getField : { input : "$$ROOT", field : "_elements" } }, as : "x", in : f(x) } }, method: "approximate" } }
426427
// => { __agg0 : { $median : { input: f(x => element), method: "approximate" } } } + "$__agg0"
427428
if (IsMappedElementsField(node.Input, out var rewrittenArg))
428429
{
429-
var accumulator = AstExpression.MedianAccumulator(rewrittenArg);
430-
return CreateGetAccumulatorFieldExpression(accumulator);
430+
var accumulatorExpression = AstExpression.MedianAccumulator(rewrittenArg);
431+
return CreateGetAccumulatorFieldExpression(accumulatorExpression);
431432
}
432433

433434
return base.VisitMedianExpression(node);
@@ -439,16 +440,16 @@ public override AstNode VisitPercentileExpression(AstPercentileExpression node)
439440
// => { __agg0 : { $percentile : { input: element, p: [...], method: "approximate" } } } + "$__agg0"
440441
if (IsElementsField(node.Input))
441442
{
442-
var accumulator = AstExpression.PercentileAccumulator(_element, node.Percentiles);
443-
return CreateGetAccumulatorFieldExpression(accumulator);
443+
var accumulatorExpression = AstExpression.PercentileAccumulator(_element, node.Percentiles);
444+
return CreateGetAccumulatorFieldExpression(accumulatorExpression);
444445
}
445446

446447
// { $percentile : { input: { $map : { input : { $getField : { input : "$$ROOT", field : "_elements" } }, as : "x", in : f(x) } }, p: [...], method: "approximate" } }
447448
// => { __agg0 : { $percentile : { input: f(x => element), p: [...], method: "approximate" } } } + "$__agg0"
448449
if (IsMappedElementsField(node.Input, out var rewrittenArg))
449450
{
450-
var accumulator = AstExpression.PercentileAccumulator(rewrittenArg, node.Percentiles);
451-
return CreateGetAccumulatorFieldExpression(accumulator);
451+
var accumulatorExpression = AstExpression.PercentileAccumulator(rewrittenArg, node.Percentiles);
452+
return CreateGetAccumulatorFieldExpression(accumulatorExpression);
452453
}
453454

454455
return base.VisitPercentileExpression(node);
@@ -489,7 +490,8 @@ public override AstNode VisitUnaryExpression(AstUnaryExpression node)
489490
return CreateGetAccumulatorFieldExpression(accumulatorExpression);
490491
}
491492

492-
// { $accumulator : { $map : { input : { $getField : { input : "$$ROOT", field : "_elements" } }, as : "x", in : f(x) } } } => { __agg0 : { $accumulator : f(x => element) } } + "$__agg0"
493+
// { $accumulator : { $map : { input : { $getField : { input : "$$ROOT", field : "_elements" } }, as : "x", in : f(x) } } }
494+
// => { __agg0 : { $accumulator : f(x => element) } } + "$__agg0"
493495
if (node.Operator.IsAccumulator(out accumulatorOperator) &&
494496
IsMappedElementsField(node.Arg, out var rewrittenArg))
495497
{
@@ -510,19 +512,19 @@ expression is AstGetFieldExpression getFieldExpression &&
510512

511513
private bool IsMappedElementsField(AstExpression expression, out AstExpression rewrittenArg)
512514
{
513-
if (expression is AstMapExpression map && IsElementsField(map.Input))
515+
if (expression is AstMapExpression mapExpression && IsElementsField(mapExpression.Input))
514516
{
515-
rewrittenArg = (AstExpression)AstNodeReplacer.Replace(map.In, (map.As, _element));
517+
rewrittenArg = (AstExpression)AstNodeReplacer.Replace(mapExpression.In, (mapExpression.As, _element));
516518
return true;
517519
}
518520

519521
rewrittenArg = null;
520522
return false;
521523
}
522524

523-
private AstExpression CreateGetAccumulatorFieldExpression(AstAccumulatorExpression accumulator)
525+
private AstExpression CreateGetAccumulatorFieldExpression(AstAccumulatorExpression accumulatorExpression)
524526
{
525-
var fieldName = _accumulators.AddAccumulatorExpression(accumulator);
527+
var fieldName = _accumulators.AddAccumulatorExpression(accumulatorExpression);
526528
return AstExpression.GetField(AstExpression.RootVar, fieldName);
527529
}
528530
}

0 commit comments

Comments
 (0)