The unified diff between revisions [090bacd8..] and [3f08ab21..] is displayed below. It can also be downloaded as a raw diff.
#
#
# patch "database.ml"
# from [b9c911fa689847ee7c467725095a07dc0ad28ac5]
# to [fe59c696f421de6401dd9a5a107126c898d92278]
#
============================================================
--- database.ml b9c911fa689847ee7c467725095a07dc0ad28ac5
+++ database.ml fe59c696f421de6401dd9a5a107126c898d92278
@@ -115,10 +115,14 @@ let process_ancestry_row_simple g = func
}
let process_ancestry_row_simple g = function
- | [| "" ; child |] when not (NodeMap.mem child g.nodes) ->
- let new_node = { id = child ; kind = REGULAR ; family = [] } in
- let nodes = NodeMap.add child new_node g.nodes in
- { g with nodes = nodes }
+ | [| "" ; child |] ->
+ if not (NodeMap.mem child g.nodes)
+ then begin
+ let new_node = { id = child ; kind = REGULAR ; family = [] } in
+ let nodes = NodeMap.add child new_node g.nodes in
+ { g with nodes = nodes }
+ end
+ else g
| [| parent ; child |] ->
process_ancestry_row g
@@ -212,17 +216,17 @@ let fetch_agraph_with_view db base64 (qu
let agraph =
Sqlite3.fetch_f db process_ancestry_row_simple agraph
"SELECT parent, child FROM revision_ancestry, %s \
- WHERE parent = id AND child IN %s" view_name_limit view_name_limit in
+ WHERE (parent = '' OR parent = id) AND child IN %s" view_name_limit view_name_limit in
(* also grab neighbor nodes *)
let agraph =
Sqlite3.fetch_f db process_ancestry_row_neigh_out agraph
- "SELECT parent, child, child IN %s FROM revision_ancestry
+ "SELECT parent, child, child IN %s FROM revision_ancestry \
WHERE parent IN %s AND child NOT IN %s"
view_name_domain view_name_limit view_name_limit in
let agraph =
Sqlite3.fetch_f db process_ancestry_row_neigh_in agraph
- "SELECT parent, child, parent IN %s FROM revision_ancestry
+ "SELECT parent, child, parent IN %s FROM revision_ancestry \
WHERE child IN %s AND parent != '' AND parent NOT IN %s"
view_name_domain view_name_limit view_name_limit in
@@ -291,7 +295,7 @@ let fetch_with_view query base64 db f =
match query_domain with
| QUERY_ALL -> Printf.sprintf
"CREATE TEMP TABLE %s AS \
- SELECT DISTINCT id FROM revision_certs
+ SELECT DISTINCT id FROM revision_certs \
WHERE name = 'branch'" view_name_domain
| QUERY_BRANCHES q -> Printf.sprintf
"CREATE TEMP TABLE %s AS \
@@ -387,7 +391,7 @@ let prepare_fetch_one_cert_value db =
"SELECT keypair FROM revision_certs WHERE id = ? AND name = ?"
let prepare_fetch_one_cert_value db =
Sqlite3.prepare_one db
- "SELECT value FROM revision_certs WHERE id = ? AND name = ?"
+ "SELECT value FROM revision_certs WHERE id = ? AND name = ?"
let fetch_one_cert_field stmt id name kind =
Sqlite3.reset stmt ;