]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/metadata/metadataDeps.ml
many changes:
[helm.git] / helm / software / components / metadata / metadataDeps.ml
index 3309843509c65c22af46a3e018c3615f5f96a57c..bf1dc49e0ec2d8213577f31a275aa27e4e2ad1f2 100644 (file)
@@ -65,9 +65,9 @@ let direct_deps ~dbd uri =
           assert false 
   in
   let do_query tbl =
-    let res = HMysql.exec dbd (SqlStatements.direct_deps tbl uri) in
+    let res = HSql.exec dbd (SqlStatements.direct_deps tbl uri) in
     let deps =
-      HMysql.map res (fun row -> unbox_row (obj_metadata_of_row row)) in
+      HSql.map res (fun row -> unbox_row (obj_metadata_of_row row)) in
     deps
   in
   do_query (MetadataTypes.obj_tbl ())
@@ -83,9 +83,9 @@ let inverse_deps ~dbd uri =
           assert false 
   in
   let do_query tbl =
-    let res = HMysql.exec dbd (SqlStatements.inverse_deps tbl uri) in
+    let res = HSql.exec dbd (SqlStatements.inverse_deps tbl uri) in
     let deps =
-      HMysql.map res (fun row -> unbox_row (inv_obj_metadata_of_row row)) in
+      HSql.map res (fun row -> unbox_row (inv_obj_metadata_of_row row)) in
     deps
   in
   do_query (MetadataTypes.obj_tbl ())
@@ -103,21 +103,22 @@ let topological_sort ~dbd uris =
 
 let sorted_uris_of_baseuri ~dbd baseuri =
    let sql_pat = 
-      Pcre.replace ~rex:(Pcre.regexp "_") ~templ:"\\_" baseuri ^ "%" 
+     Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" baseuri ^ "%"
    in
    let query =
       Printf.sprintf
-         ("SELECT source FROM %s WHERE source LIKE \"%s\" UNION "^^
-          "SELECT source FROM %s WHERE source LIKE \"%s\"")
+         ("SELECT source FROM %s WHERE source LIKE \"%s\" ESCAPE \"\\\" UNION "
+           ^^
+          "SELECT source FROM %s WHERE source LIKE \"%s\" ESCAPE \"\\\"")
          (MetadataTypes.name_tbl ()) sql_pat
          MetadataTypes.library_name_tbl sql_pat
    in
-   let result = HMysql.exec dbd query in
+   let result = HSql.exec dbd query in
    let map cols = match cols.(0) with
       | Some s -> UriManager.uri_of_string s
       | _ -> assert false
    in
-   let uris = HMysql.map result map in
+   let uris = HSql.map result map in
    let sorted_uris = topological_sort ~dbd uris in
    let filter_map uri =
       let s =