intersect_ex (execute_ex env l1) (execute_ex env l2)
| MQListRVar rvar -> [List.assoc rvar env]
| MQLetIn (lvar, l1, l2) ->
- let t = Unix.time () in
+ let t = Sys.time () in
let res =
(*CSC: The interesting code *)
let _ = letin_ex lvar (execute_ex env l1) in
in
letdispose ();
print_string ("LETIN = " ^ string_of_int (List.length res) ^ ": ") ;
- print_endline (string_of_float (Unix.time () -. t) ^ "s") ;
+ print_endline (string_of_float (Sys.time () -. t) ^ "s") ;
flush stdout ;
res
| MQListLVar lvar ->
* sono associati anche i valori delle variabili che ancora non sono state valutate
* perche', ad esempio, si trovano in altri rami dell'albero.
*
- * Esempio:
+* Esempio:
* SELECT x IN USE PATTERN "cic:/**.con" POSITION $a WHERE $a IS MainConclusion
* L'albero corrispondente a questa query e':
*
*****************************************************************************)
-let init () = Dbconn.init ()
+let init connection_param = Dbconn.init connection_param
(*
let c = pgc () in
let res =
| MathQL.Union (sexp1, sexp2) -> union_ex (exec_set_exp c sexp1) (exec_set_exp c sexp2)
| MathQL.LetSVar (svar, sexp1, sexp2) -> let _ = (svar, (exec_set_exp c sexp1)):: (List.remove_assoc svar c.svars)
in (exec_set_exp c sexp2)
- | MathQL.LetVVar (vvar, vexp, sexp) -> let _ = (vvar, (exec_val_exp c vexp)):: (List.remove_assoc vvar c.vvars)
- in (exec_set_exp c sexp)
+ | MathQL.LetVVar (vvar, vexp, sexp) ->
+ let before = Sys.time () in
+ let c1 = upd_vvars c ((vvar, exec_val_exp c vexp) :: c.vvars) in
+ let res = exec_set_exp c1 sexp in
+ print_string ("LETIN " ^ vvar ^ " = " ^ string_of_int (List.length res) ^ ": ") ;
+ print_endline (string_of_float (Sys.time () -. before) ^ "s") ;
+ flush stdout ; res
| MathQL.Relation (rop, path, sexp, attl) -> relation_ex rop path (exec_set_exp c sexp) attl
| MathQL.Select (rvar, sexp, bexp) -> let rset = (exec_set_exp c sexp) in
let rec select_ex rset =
and execute x =
exec_set_exp {svars = []; rvars = []; groups = []; vvars = []} x
-
-
-
-
-(*
- * chiusura della connessione al database
- *)
- let close () = Dbconn.close ();;
-