package links

  1. Overview
  2. Docs
type base_type =
  1. | Bool
  2. | Char
  3. | Float
  4. | Int
  5. | String
  6. | DateTime
type tag = int
type t =
  1. | For of tag option * (Var.var * t) list * t list * t
  2. | If of t * t * t
  3. | Table of Value.table
  4. | Database of Value.database * string
  5. | Singleton of t
  6. | Concat of t list
  7. | Dedup of t
  8. | Prom of t
  9. | Record of t Utility.StringMap.t
  10. | Project of t * string
  11. | Erase of t * Utility.StringSet.t
  12. | Variant of string * t
  13. | XML of Value.xmlitem
  14. | Apply of t * t list
  15. | Closure of Ir.var list * Ir.computation * env
  16. | Case of t * (Var.binder * t) Utility.StringMap.t * (Var.binder * t) option
  17. | Primitive of string
  18. | Var of Var.var * Types.datatype
  19. | Constant of CommonTypes.Constant.t
and env = {
  1. venv : Value.env;
  2. qenv : t Env.Int.t;
  3. policy : CommonTypes.QueryPolicy.t;
}
val query_error : ('a, unit, string, 'b) format4 -> 'a
val nil : t
val bind : env -> (Env.Int.name * t) -> env
val lookup : env -> Var.var -> t
val expression_of_base_value : Value.t -> t
val check_policies_compatible : CommonTypes.QueryPolicy.t -> CommonTypes.QueryPolicy.t -> unit
val unbox_xml : t -> Value.xmlitem
val unbox_string : t -> string
val unbox_list : t -> t list
val unbox_pair : t -> t * t
val unbox_record : t -> t Utility.StringMap.t
val used_database : t -> Value.database option
val string_of_t : t -> string
val env_of_value_env : CommonTypes.QueryPolicy.t -> Value.env -> env
val empty_env : CommonTypes.QueryPolicy.t -> env
val append_env : env -> env -> env
val subst : t -> Var.var -> t -> t
val occurs_free_gens : (Var.var * t) list -> t -> (Var.var * t * Types.datatype) option
val type_of_expression : t -> Types.datatype
val eta_expand_var : (Var.var * Types.datatype) -> t
val eta_expand_list : t -> (Var.var * t) list * t list * t
val default_of_base_type : CommonTypes.Primitive.t -> t
val value_of_expression : t -> Value.t
val labels_of_field_types : 'a Utility.StringMap.t -> Utility.StringSet.t
val table_field_types : Value.table -> Types.typ Utility.StringMap.t
val is_list : t -> bool
val likeify : t -> t option
val sql_of_query : t -> Sql.query
val base : Sql.index -> t -> Sql.base
type let_clause = Var.var * t * Var.var * t
type let_query = let_clause list
val sql_of_let_query : let_query -> Sql.query
val update : ((Var.var * string) * t option * t) -> Sql.query
val delete : ((Var.var * string) * t option) -> Sql.query
val insert : string -> string list -> Value.t list list -> Sql.query
module type QUERY_VISITOR = sig ... end