]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/metadata/metadataDb.ml
many changes:
[helm.git] / helm / software / components / metadata / metadataDb.ml
index 6358df5b04718f634defe679c0af44cb8cfcc04d..9480484c00d0f9e879d4f5747cf011f86400ed9b 100644 (file)
@@ -180,8 +180,12 @@ let clean ~(dbd:HSql.dbd) =
     uris
   in
   let del_from tbl =
+    let escape s =
+      Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape s)
+    in
     let query s = 
-      sprintf "DELETE FROM %s WHERE source LIKE \"%s%%\"" (tbl ()) s 
+      sprintf "DELETE FROM %s WHERE source LIKE \"%s%%\" ESCAPE \"\\\" " 
+        (tbl ()) (escape s)
     in
     List.iter
       (fun source_col -> ignore (HSql.exec dbd (query source_col)))
@@ -193,8 +197,12 @@ let clean ~(dbd:HSql.dbd) =
 let unindex ~dbd ~uri =
   let uri = UriManager.string_of_uri uri in
   let del_from tbl =
+    let escape s =
+      Pcre.replace ~pat:"([^\\\\])_" ~templ:"$1\\_" (HSql.escape s)
+    in
     let query tbl =
-      sprintf "DELETE FROM %s WHERE source LIKE \"%s%%\"" (tbl ()) uri
+      sprintf "DELETE FROM %s WHERE source LIKE \"%s%%\" ESCAPE \"\\\" " 
+       (tbl ()) (escape uri)
     in
     ignore (HSql.exec dbd (query tbl))
   in