+ ESCAPE
[sqlgg.git] / tables.ml
blobb1e5d16f757e051e93fa97a7caefaf1a214c0fda
1 (** Global list of tables *)
3 open Printf
5 type table = RA.table
7 let all : table list ref = ref []
9 (** @raise Error when no such table *)
10 let get_from tables name =
11 try
12 List.find (fun (n,_) -> n = name) tables
13 with Not_found -> failwith (sprintf "no such table %s" name)
15 let get name = get_from !all name
16 let get_scheme name = snd (get name)
17 let check name = ignore (get name)
19 let add v =
20 let (name,scheme) = v in
21 match List.find_all (fun (n,_) -> n = name) !all with
22 | [] -> all := v :: !all
23 | _ -> failwith (sprintf "table %s already exists" name)
25 let print () = List.iter RA.print_table !all