Skip to content

Commit b2402d3

Browse files
updated and and or aggregators
1 parent a1a4191 commit b2402d3

File tree

1 file changed

+40
-24
lines changed

1 file changed

+40
-24
lines changed

internal/routing/aggregator.go

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -494,37 +494,45 @@ func (a *AggLogicalAndAggregator) Add(result interface{}, err error) error {
494494
}
495495

496496
func (a *AggLogicalAndAggregator) BatchAdd(results map[string]AggregatorResErr) error {
497+
var result bool = true
498+
497499
for _, res := range results {
498-
err := a.Add(res.Result, res.Err)
499-
if err != nil {
500-
return err
500+
if res.Err != nil {
501+
return a.Add(nil, res.Err)
501502
}
502503

503-
if res.Err != nil {
504-
return nil
504+
boolRes, err := toBool(res.Result)
505+
if err != nil {
506+
return a.Add(nil, err)
505507
}
508+
509+
result = result && boolRes
506510
}
507511

508-
return nil
512+
return a.Add(result, nil)
509513
}
510514

511515
func (a *AggLogicalAndAggregator) AddWithKey(key string, result interface{}, err error) error {
512516
return a.Add(result, err)
513517
}
514518

515519
func (a *AggLogicalAndAggregator) BatchSlice(results []AggregatorResErr) error {
520+
var result bool = true
521+
516522
for _, res := range results {
517-
err := a.Add(res.Result, res.Err)
518-
if err != nil {
519-
return err
523+
if res.Err != nil {
524+
return a.Add(nil, res.Err)
520525
}
521526

522-
if res.Err != nil {
523-
return nil
527+
boolRes, err := toBool(res.Result)
528+
if err != nil {
529+
return a.Add(nil, err)
524530
}
531+
532+
result = result && boolRes
525533
}
526534

527-
return nil
535+
return a.Add(result, nil)
528536
}
529537

530538
func (a *AggLogicalAndAggregator) Result() (interface{}, error) {
@@ -570,37 +578,45 @@ func (a *AggLogicalOrAggregator) Add(result interface{}, err error) error {
570578
}
571579

572580
func (a *AggLogicalOrAggregator) BatchAdd(results map[string]AggregatorResErr) error {
581+
var result bool = false
582+
573583
for _, res := range results {
574-
err := a.Add(res.Result, res.Err)
575-
if err != nil {
576-
return err
584+
if res.Err != nil {
585+
return a.Add(nil, res.Err)
577586
}
578587

579-
if res.Err != nil {
580-
return nil
588+
boolRes, err := toBool(res.Result)
589+
if err != nil {
590+
return a.Add(nil, err)
581591
}
592+
593+
result = result || boolRes
582594
}
583595

584-
return nil
596+
return a.Add(result, nil)
585597
}
586598

587599
func (a *AggLogicalOrAggregator) AddWithKey(key string, result interface{}, err error) error {
588600
return a.Add(result, err)
589601
}
590602

591603
func (a *AggLogicalOrAggregator) BatchSlice(results []AggregatorResErr) error {
604+
var result bool = false
605+
592606
for _, res := range results {
593-
err := a.Add(res.Result, res.Err)
594-
if err != nil {
595-
return err
607+
if res.Err != nil {
608+
return a.Add(nil, res.Err)
596609
}
597610

598-
if res.Err != nil {
599-
return nil
611+
boolRes, err := toBool(res.Result)
612+
if err != nil {
613+
return a.Add(nil, err)
600614
}
615+
616+
result = result || boolRes
601617
}
602618

603-
return nil
619+
return a.Add(result, nil)
604620
}
605621

606622
func (a *AggLogicalOrAggregator) Result() (interface{}, error) {

0 commit comments

Comments
 (0)