Guest User

Untitled

a guest
Jun 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. reduce_stream_kp_node(Bt, Dir, NodeList, KeyStart, KeyEnd,
  2. GroupedKey, GroupedKVsAcc, GroupedRedsAcc,
  3. KeyGroupFun, Fun, Acc) ->
  4. Nodes =
  5. case KeyStart of
  6. undefined ->
  7. NodeList;
  8. _ ->
  9. lists:dropwhile(
  10. fun({Key,_}) ->
  11. less(Bt, Key, KeyStart)
  12. end, NodeList)
  13. end,
  14. NodesInRange =
  15. case KeyEnd of
  16. undefined ->
  17. Nodes;
  18. _ ->
  19. {InRange, MaybeInRange} = lists:splitwith(
  20. fun({Key,_}) ->
  21. less(Bt, Key, KeyEnd)
  22. end, Nodes),
  23. InRange ++ case MaybeInRange of [] -> []; [FirstMaybe|_] -> [FirstMaybe] end
  24. end,
  25. reduce_stream_kp_node2(Bt, Dir, adjust_dir(Dir, NodesInRange), KeyStart, KeyEnd,
  26. GroupedKey, GroupedKVsAcc, GroupedRedsAcc, KeyGroupFun, Fun, Acc).
  27.  
  28.  
  29. ====================
  30. reduce_stream_kp_node(Bt, Dir, NodeList, KeyStart, KeyEnd,
  31. GroupedKey, GroupedKVsAcc, GroupedRedsAcc,
  32. KeyGroupFun, Fun, Acc) ->
  33. Nodes =
  34. case KeyStart of
  35. undefined ->
  36. NodeList;
  37. _ ->
  38. lists:dropwhile(
  39. fun({Key,_}) ->
  40. less(Bt, Key, KeyStart)
  41. end, NodeList)
  42. end,
  43. NodesInRange =
  44. case KeyEnd of
  45. undefined ->
  46. Nodes;
  47. _ ->
  48. {InRange, MaybeInRange} = lists:splitwith(
  49. fun({Key,_}) ->
  50. less(Bt, Key, KeyEnd)
  51. end, Nodes),
  52. InRange ++ case MaybeInRange of [] -> []; [FirstMaybe|_] -> [FirstMaybe] end
  53. end,
  54. reduce_stream_kp_node2(Bt, Dir, adjust_dir(Dir, NodesInRange), KeyStart, KeyEnd,
  55. GroupedKey, GroupedKVsAcc, GroupedRedsAcc, KeyGroupFun, Fun, Acc).
Add Comment
Please, Sign In to add comment