]> matita.cs.unibo.it Git - helm.git/blobdiff - components/binaries/extractor/extractor_manager.ml
maxipatch for support of multiple DBs.
[helm.git] / components / binaries / extractor / extractor_manager.ml
index 05393b63e24980d97c31e2c73a9adcea5659c6ea..13e92777f1802ea78184f41117293699a01b0911 100644 (file)
@@ -36,18 +36,18 @@ let create_all dbd =
     (name_tbl,`ObjectName) ; (count_tbl,`Count) ] 
   in
   let statements = 
-    (SqlStatements.create_tables tbls) @ (SqlStatements.create_indexes tbls)
+    (SqlStatements.create_tables tbls) @ 
+    (SqlStatements.create_indexes tbls)
   in
   List.iter (fun statement -> 
     try
-      ignore (Mysql.exec dbd statement)
+      ignore (HSql.exec HSql.Library dbd statement)
     with
-      exn -> 
-         let status = Mysql.status dbd in
-         match status with 
-         | Mysql.StatusError Mysql.Table_exists_error -> ()
-         | Mysql.StatusError _ -> raise exn
-         | _ -> ()
+      HSql.Error _ as exn -> 
+         match HSql.errno HSql.Library dbd with 
+         | HSql.Table_exists_error -> ()
+         | HSql.OK -> ()
+         | _ -> raise exn
       ) statements
 
 let drop_all dbd =
@@ -61,15 +61,16 @@ let drop_all dbd =
     (name_tbl,`ObjectName) ; (count_tbl,`Count) ] 
   in
   let statements = 
-    (SqlStatements.drop_tables tbls) @ (SqlStatements.drop_indexes tbls)
+    (SqlStatements.drop_tables tbls) @ 
+    (SqlStatements.drop_indexes tbls HSql.Library dbd)
   in
   List.iter (fun statement -> 
     try
-      ignore (Mysql.exec dbd statement)
-    with Mysql.Error _ as exn ->
-      match Mysql.errno dbd with 
-      | Mysql.Bad_table_error 
-      | Mysql.No_such_index | Mysql.No_such_table -> () 
+      ignore (HSql.exec HSql.Library dbd statement)
+    with HSql.Error _ as exn ->
+      match HSql.errno HSql.Library dbd with 
+      | HSql.Bad_table_error 
+      | HSql.No_such_index | HSql.No_such_table -> () 
       | _ -> raise exn
     ) statements
   
@@ -182,12 +183,8 @@ let main () =
         ignore(Unix.system ("mkdir -p " ^ fmt));
         ignore(Unix.system ("cp -r " ^ base ^ " " ^ fmt ^ "/../"));
       done;
-      let dbd =
-        Mysql.quick_connect 
-          ~host:(Helm_registry.get "db.host") 
-          ~user:(Helm_registry.get "db.user") 
-          ~database:(Helm_registry.get "db.database") ()
-      in
+      let dbspec = LibraryDb.parse_dbd_conf () in
+      let dbd = HSql.quick_connect dbspec in
       MetadataTypes.ownerize_tables owner;
       let uri_RE = Str.regexp ".*\\(ind\\|var\\|con\\)$" in
       drop_all dbd;
@@ -258,7 +255,7 @@ let main () =
           (rel_tbl_c,`RefRel);
           (name_tbl_c,`ObjectName);
           (count_tbl_c,`Count);
-          (hits_tbl,`Hits) ] @
+          (hits_tbl,`Hits) ] HSql.Library dbd @
         SqlStatements.rename_tables [
           (obj_tbl,obj_tbl_b);
           (sort_tbl,sort_tbl_b);
@@ -284,22 +281,14 @@ let main () =
       in
         List.iter (fun statement -> 
           try
-(*            prerr_endline statement;*)
-            ignore (Mysql.exec dbd statement)
-          with exn -> 
-            let status = Mysql.status dbd in
-            match status with 
-            | Mysql.StatusError Mysql.Table_exists_error
-            | Mysql.StatusError Mysql.Bad_table_error
-            | Mysql.StatusError Mysql.Cant_drop_field_or_key
-            | Mysql.StatusError Mysql.Unknown_table -> ()
-            | Mysql.StatusError status ->
-(*                prerr_endline (string_of_int (Obj.magic status));*)
-                prerr_endline (Printexc.to_string exn);
-                raise exn
+            ignore (HSql.exec HSql.Library dbd statement)
+          with HSql.Error _ as exn -> 
+            match HSql.errno HSql.Library dbd with 
+            | HSql.Table_exists_error
+            | HSql.Bad_table_error -> ()
             | _ ->
                 prerr_endline (Printexc.to_string exn);
-                ())
+                raise exn)
         stats
 ;;