-let index_constant ~dbh =
- let query = prepare_insert dbh in
- fun ~owner ~uri ~body ~ty ->
- let name = UriManager.name_of_uri uri in
- let uri = UriManager.string_of_uri uri in
- let metadata = MetadataExtractor.compute ~body ~ty in
- let columns = MetadataPp.columns_of_metadata ~about:uri metadata in
- execute_insert dbh query uri owner (columns :> dbi_columns);
- insert_const_no dbh uri;
- insert_name ~dbh ~uri ~name
+ (* TODO ZACK: verify if an object has already been indexed *)
+let already_indexed _ = false
+(*
+let index_constant ~dbd =
+ let query = prepare_insert () in
+ fun ~uri ~body ~ty ->
+ if not (already_indexed uri) then beginrel_tbl ()
+ let name = UriManager.name_of_uri uri in
+ let uri = UriManager.string_of_uri uri in
+ let metadata = MetadataExtractor.compute ~body ~ty in
+ let columns = MetadataPp.columns_of_metadata ~about:uri metadata in
+ execute_insert dbd query uri (columns :> columns);
+ insert_const_no dbd uri;
+ insert_name ~dbd ~uri ~name
+ end
+
+let index_inductive_def ~dbd =
+ let query = prepare_insert () in
+ fun ~uri ~types ->
+ if not (already_indexed uri) then begin
+ let metadata = MetadataExtractor.compute_obj uri in
+ let uri_of (a,b,c) = a in
+ let uris = UriManager.string_of_uri uri :: List.map uri_of metadata in
+ let uri = UriManager.string_of_uri uri in
+ let columns = MetadataPp.columns_of_ind_metadata metadata in
+ execute_insert dbd query uri (columns :> columns);
+ List.iter (insert_const_no dbd) uris;
+ List.iter (fun (uri, name, _) -> insert_name ~dbd ~uri ~name) metadata
+ end
+*)
+
+(***** TENTATIVE HACK FOR THE DB SLOWDOWN - BEGIN *******)
+let analyze_index = ref 0
+let eventually_analyze dbd =
+ incr analyze_index;
+ if !analyze_index > 30 then
+ begin
+ let analyze t = "OPTIMIZE TABLE " ^ t ^ ";" in
+ List.iter
+ (fun table -> ignore (Mysql.exec dbd (analyze table)))
+ [name_tbl (); rel_tbl (); sort_tbl (); obj_tbl(); count_tbl()]
+ end
+
+(***** TENTATIVE HACK FOR THE DB SLOWDOWN - END *******)