Mercurial > urweb
view src/sql.sig @ 2209:0ca11d57c175
Cleans up interface (it's now a command line option) and renames project to "sqlcache" in the all-one-word style. Still has issues to do with concurrency, retrying transactions, and foreign function calls that either rely on state or have side effects.
author | Ziv Scully <ziv@mit.edu> |
---|---|
date | Sat, 31 May 2014 03:08:16 -0400 |
parents | 01c8aceac480 |
children | 388ba4dc7c96 |
line wrap: on
line source
signature SQL = sig val debug : bool ref type lvar = int datatype func = DtCon0 of string | DtCon1 of string | UnCon of string | Other of string datatype exp = Const of Prim.t | Var of int | Lvar of lvar | Func of func * exp list | Recd of (string * exp) list | Proj of exp * string datatype reln = Known | Sql of string | PCon0 of string | PCon1 of string | Eq | Ne | Lt | Le | Gt | Ge datatype prop = True | False | Unknown | And of prop * prop | Or of prop * prop | Reln of reln * exp list | Cond of exp * prop datatype chunk = String of string | Exp of Mono.exp type 'a parser = chunk list -> ('a * chunk list) option val parse : 'a parser -> Mono.exp -> 'a option datatype Rel = Exps of exp * exp -> prop | Props of prop * prop -> prop datatype sqexp = SqConst of Prim.t | SqTrue | SqFalse | SqNot of sqexp | Field of string * string | Computed of string | Binop of Rel * sqexp * sqexp | SqKnown of sqexp | Inj of Mono.exp | SqFunc of string * sqexp | Unmodeled | Null datatype ('a,'b) sum = inl of 'a | inr of 'b datatype sitem = SqField of string * string | SqExp of sqexp * string type query1 = {Select : sitem list, From : (string * string) list, Where : sqexp option} datatype query = Query1 of query1 | Union of query * query val query : query parser datatype dml = Insert of string * (string * sqexp) list | Delete of string * sqexp | Update of string * (string * sqexp) list * sqexp val dml : dml parser end