blob: 2a52b5c7c4219e4f2d865a968d36b08a7cbc99fd (
plain) (
tree)
|
|
type error =
| RelationNotFound of string
| RelationAlreadyExists of string
| TupleNotFound of Conventions.Hash.t
| DuplicateTuple of Conventions.Hash.t
| ConstraintViolation of string
| StorageError of string
val string_of_error : error -> string
val sexp_of_error : error -> Sexplib.Sexp.t
type 'a result = ('a, error) Result.t
module Schema = Schema
val hash_tuple : Tuple.materialized -> Conventions.Hash.t
module Make (Storage : Management.Physical.S) : sig
type storage = Storage.t
type nonrec error = error
val of_string_error : string -> error
val store_database :
storage -> Management.Database.t -> (unit, error) Result.t
val load_relation :
storage -> Conventions.Hash.t -> (Relation.t option, error) Result.t
val load_database :
storage ->
Conventions.Hash.t ->
(Management.Database.t option, error) Result.t
val load_tuple :
storage -> Conventions.Hash.t -> (Tuple.materialized option, error) Result.t
val load_tuples :
storage ->
Conventions.Hash.t list ->
(Tuple.materialized list, error) Result.t
val create_tuple :
storage ->
Management.Database.t ->
Relation.t ->
Tuple.materialized ->
(Management.Database.t * Relation.t * Conventions.Hash.t, error) Result.t
val create_tuples :
storage ->
Management.Database.t ->
Relation.t ->
Tuple.materialized list ->
( Management.Database.t * Relation.t * Conventions.Hash.t list,
error )
Result.t
val retract_tuple :
storage ->
Management.Database.t ->
Relation.t ->
tuple_hash:Conventions.Hash.t ->
(Management.Database.t * Relation.t, error) Result.t
val register_domain :
storage ->
Management.Database.t ->
Domain.t ->
(Management.Database.t, error) Result.t
val create_database :
storage -> name:string -> (Management.Database.t, error) Result.t
val database_history : Management.Database.t -> Conventions.Hash.t list
val create_relation :
storage ->
Management.Database.t ->
name:string ->
schema:Schema.t ->
(Management.Database.t * Relation.t, error) Result.t
val create_immutable_relation :
storage ->
Management.Database.t ->
name:string ->
schema:Schema.t ->
generator:Generator.t ->
membership_criteria:(Tuple.t -> bool) ->
cardinality:Conventions.Cardinality.t ->
(Management.Database.t * Relation.t, error) Result.t
val retract_relation :
storage ->
Management.Database.t ->
name:string ->
Management.Database.t result
val clear_relation :
storage ->
Management.Database.t ->
Relation.t ->
(Management.Database.t * Relation.t, error) Result.t
val register_constraint :
storage ->
Management.Database.t ->
constraint_name:string ->
relation_name:string ->
body:Constraint.t ->
(Management.Database.t, error) Result.t
val tuple_hashes : Relation.t -> Conventions.Hash.t list
val get_relation : Management.Database.t -> name:string -> Relation.t option
val tuple_count : Relation.t -> int
val tuple_exists : Relation.t -> Conventions.Hash.t -> bool
val attach_constraint :
storage ->
Management.Database.t ->
constraint_name:string ->
relation_name:string ->
body:Constraint.t ->
timing:Constraint.timing ->
(Management.Database.t, error) Result.t
val check_deferred_constraints :
storage -> Management.Database.t -> (unit, error) Result.t
val commit :
storage -> Management.Database.t -> (Management.Database.t, error) Result.t
end
module Memory : sig
include module type of Make (Management.Physical.Memory)
end
|