package granary

  1. Overview
  2. Docs
Pure-OCaml SQL engine

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.0.3.tar.gz
sha256=8b18780ea373be48301d9f333925860a2f9110fc0ac28684295118d72b65a67e
sha512=25ca3c9c5e2b528704a542502e0f37dc33ba003f65622d969b8c2b800778585f8ef0cf89b36e6679832e3993e8303aecddfc662742baf7044d6afe4a796b8f11

doc/src/granary.ivm/delta.ml.html

Source file delta.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
type 'elt event =
  | Insert of 'elt
  | Delete of 'elt
  | Update of 'elt * 'elt

module Make (Z : Zset.S) = struct
  let of_event = function
    | Insert e -> Z.singleton e 1
    | Delete e -> Z.singleton e (-1)
    | Update (old_e, new_e) -> Z.add (Z.singleton old_e (-1)) (Z.singleton new_e 1)
  ;;

  let of_events es = List.fold_left (fun acc e -> Z.add acc (of_event e)) Z.zero es
end