aboutsummaryrefslogblamecommitdiffstats
path: root/lib/dml/ast.ml
blob: 4a903e7c6b46c4bd95d602d1733b1bfba1daf50b (plain) (tree)





















                                                                      
open Sexplib.Std

type attr_value = string * Drl.Ast.value
[@@deriving sexp]

type cardinality_spec =
  | Finite of int
  | AlephZero
  | Continuum
  | ConstrainedFinite
[@@deriving sexp]

type statement =
  | CreateDatabase of string
  | CreateRelation of { name: string; schema: (string * string) list }
  | RetractRelation of string
  | ClearRelation of string
  | RegisterDomain of { name: string; cardinality: cardinality_spec }
  | InsertTuple of { relation: string; attributes: attr_value list }
  | InsertTuples of { relation: string; tuples: attr_value list list }
  | DeleteTuple of { relation: string; attributes: attr_value list }
[@@deriving sexp]