@@ -415,19 +415,20 @@ public override AstNode VisitMapExpression(AstMapExpression node)
415
415
416
416
public override AstNode VisitMedianExpression ( AstMedianExpression node )
417
417
{
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"
419
420
if ( IsElementsField ( node . Input ) )
420
421
{
421
- var accumulator = AstExpression . MedianAccumulator ( _element ) ;
422
- return CreateGetAccumulatorFieldExpression ( accumulator ) ;
422
+ var accumulatorExpression = AstExpression . MedianAccumulator ( _element ) ;
423
+ return CreateGetAccumulatorFieldExpression ( accumulatorExpression ) ;
423
424
}
424
425
425
426
// { $median : { input: { $map : { input : { $getField : { input : "$$ROOT", field : "_elements" } }, as : "x", in : f(x) } }, method: "approximate" } }
426
427
// => { __agg0 : { $median : { input: f(x => element), method: "approximate" } } } + "$__agg0"
427
428
if ( IsMappedElementsField ( node . Input , out var rewrittenArg ) )
428
429
{
429
- var accumulator = AstExpression . MedianAccumulator ( rewrittenArg ) ;
430
- return CreateGetAccumulatorFieldExpression ( accumulator ) ;
430
+ var accumulatorExpression = AstExpression . MedianAccumulator ( rewrittenArg ) ;
431
+ return CreateGetAccumulatorFieldExpression ( accumulatorExpression ) ;
431
432
}
432
433
433
434
return base . VisitMedianExpression ( node ) ;
@@ -439,16 +440,16 @@ public override AstNode VisitPercentileExpression(AstPercentileExpression node)
439
440
// => { __agg0 : { $percentile : { input: element, p: [...], method: "approximate" } } } + "$__agg0"
440
441
if ( IsElementsField ( node . Input ) )
441
442
{
442
- var accumulator = AstExpression . PercentileAccumulator ( _element , node . Percentiles ) ;
443
- return CreateGetAccumulatorFieldExpression ( accumulator ) ;
443
+ var accumulatorExpression = AstExpression . PercentileAccumulator ( _element , node . Percentiles ) ;
444
+ return CreateGetAccumulatorFieldExpression ( accumulatorExpression ) ;
444
445
}
445
446
446
447
// { $percentile : { input: { $map : { input : { $getField : { input : "$$ROOT", field : "_elements" } }, as : "x", in : f(x) } }, p: [...], method: "approximate" } }
447
448
// => { __agg0 : { $percentile : { input: f(x => element), p: [...], method: "approximate" } } } + "$__agg0"
448
449
if ( IsMappedElementsField ( node . Input , out var rewrittenArg ) )
449
450
{
450
- var accumulator = AstExpression . PercentileAccumulator ( rewrittenArg , node . Percentiles ) ;
451
- return CreateGetAccumulatorFieldExpression ( accumulator ) ;
451
+ var accumulatorExpression = AstExpression . PercentileAccumulator ( rewrittenArg , node . Percentiles ) ;
452
+ return CreateGetAccumulatorFieldExpression ( accumulatorExpression ) ;
452
453
}
453
454
454
455
return base . VisitPercentileExpression ( node ) ;
@@ -489,7 +490,8 @@ public override AstNode VisitUnaryExpression(AstUnaryExpression node)
489
490
return CreateGetAccumulatorFieldExpression ( accumulatorExpression ) ;
490
491
}
491
492
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"
493
495
if ( node . Operator . IsAccumulator ( out accumulatorOperator ) &&
494
496
IsMappedElementsField ( node . Arg , out var rewrittenArg ) )
495
497
{
@@ -510,19 +512,19 @@ expression is AstGetFieldExpression getFieldExpression &&
510
512
511
513
private bool IsMappedElementsField ( AstExpression expression , out AstExpression rewrittenArg )
512
514
{
513
- if ( expression is AstMapExpression map && IsElementsField ( map . Input ) )
515
+ if ( expression is AstMapExpression mapExpression && IsElementsField ( mapExpression . Input ) )
514
516
{
515
- rewrittenArg = ( AstExpression ) AstNodeReplacer . Replace ( map . In , ( map . As , _element ) ) ;
517
+ rewrittenArg = ( AstExpression ) AstNodeReplacer . Replace ( mapExpression . In , ( mapExpression . As , _element ) ) ;
516
518
return true ;
517
519
}
518
520
519
521
rewrittenArg = null ;
520
522
return false ;
521
523
}
522
524
523
- private AstExpression CreateGetAccumulatorFieldExpression ( AstAccumulatorExpression accumulator )
525
+ private AstExpression CreateGetAccumulatorFieldExpression ( AstAccumulatorExpression accumulatorExpression )
524
526
{
525
- var fieldName = _accumulators . AddAccumulatorExpression ( accumulator ) ;
527
+ var fieldName = _accumulators . AddAccumulatorExpression ( accumulatorExpression ) ;
526
528
return AstExpression . GetField ( AstExpression . RootVar , fieldName ) ;
527
529
}
528
530
}
0 commit comments