InMemAggregateZeroOpt.yqls 916 B

1234567891011121314151617181920212223
  1. (
  2. #comment
  3. (let config (DataSource 'config))
  4. (let init_min (lambda '(x) (Member x 'value)))
  5. (let init_count (lambda '(x) (Uint64 '1)))
  6. (let update_min (lambda '(x y) (Min (Member x 'value) y)))
  7. (let update_count (lambda '(x y) (+ y (Uint64 '1))))
  8. (let id (lambda '(x) x))
  9. (let merge_min (lambda '(x y) (Min x y)))
  10. (let merge_count (lambda '(x y) (+ x y)))
  11. (let list (AsList
  12. (AsStruct '('key (Uint32 '1)) '('value (Just (Uint32 '2))))
  13. ))
  14. (let list (Take list (Uint64 '0)))
  15. (let min (AggregationTraits (ListItemType (TypeOf list)) init_min update_min id id merge_min id (Null)))
  16. (let count (AggregationTraits (ListItemType (TypeOf list)) init_count update_count id id merge_count id (Uint64 '0)))
  17. (let resAll (Aggregate list '() '('('minvalue min) '('count count))))
  18. (let res_sink (DataSink 'result))
  19. (let world (Write! world res_sink (Key) resAll '('('type))))
  20. (let world (Commit! world res_sink))
  21. (return world)
  22. )