MCPcopy
hub / github.com/redis/go-redis / aggregateKeyedValues

Method aggregateKeyedValues

osscluster_router.go:405–427  ·  view source on GitHub ↗

aggregateKeyedValues aggregates individual key-value pairs while preserving key order

(cmd Cmder, keyedResults map[string]routing.AggregatorResErr, keyOrder []string, policy *routing.CommandPolicy)

Source from the content-addressed store, hash-verified

403
404// aggregateKeyedValues aggregates individual key-value pairs while preserving key order
405func (c *ClusterClient) aggregateKeyedValues(cmd Cmder, keyedResults map[string]routing.AggregatorResErr, keyOrder []string, policy *routing.CommandPolicy) error {
406 if len(keyedResults) == 0 {
407 return errNoResToAggregate
408 }
409
410 aggregator := c.createAggregator(policy, cmd, true)
411
412 // Set key order for keyed aggregators
413 var keyedAgg *routing.DefaultKeyedAggregator
414 var isKeyedAgg bool
415 var err error
416 if keyedAgg, isKeyedAgg = aggregator.(*routing.DefaultKeyedAggregator); isKeyedAgg {
417 err = keyedAgg.BatchAddWithKeyOrder(keyedResults, keyOrder)
418 } else {
419 err = aggregator.BatchAdd(keyedResults)
420 }
421
422 if err != nil {
423 return err
424 }
425
426 return c.finishAggregation(cmd, aggregator)
427}
428
429// aggregateResponses aggregates multiple shard responses
430func (c *ClusterClient) aggregateResponses(cmd Cmder, cmds []Cmder, policy *routing.CommandPolicy) error {

Callers 1

Calls 4

createAggregatorMethod · 0.95
BatchAddWithKeyOrderMethod · 0.95
finishAggregationMethod · 0.95
BatchAddMethod · 0.65

Tested by

no test coverage detected