- match sth#fetch1 () with
- [ title; description; creation_date; redirect; css ] ->
- title, description, creation_date, redirect, css
- | _ -> assert false in
-
- let sth =
- dbh#prepare_cached
- "set constraints pages_redirect_cn, sitemenu_url_cn deferred" in
- sth#execute [];
-
- let sth = dbh#prepare_cached "update pages set url_deleted = url,
- url = null
- where hostid = ? and url = ?" in
- sth#execute [`Int hostid; `String page];
-
- let sth = dbh#prepare_cached "insert into pages (hostid, url, title,
- description, creation_date, logged_ip,
- logged_user, redirect, css)
- values (?, ?, ?, ?, ?, ?, ?, ?, ?)" in
- sth#execute [`Int hostid; `String page; title; description;
- creation_date; logged_ip; logged_user; redirect; css ];
-
- let pageid = sth#serial "pages_id_seq" in
-
- let sth = dbh#prepare_cached "insert into contents (pageid, ordering,
- sectionname, content, divname)
- select ? as pageid, ordering, sectionname,
- content, divname
- from contents
- where pageid = ?" in
- sth#execute [`Int pageid; `Int version];
-
- dbh#commit ();
+ match rows with
+ | [row] -> row
+ | _ -> assert false in
+
+ PGSQL(dbh)
+ "set constraints pages_redirect_cn, sitemenu_url_cn,
+ page_emails_url_cn, links_from_cn, recently_visited_url_cn
+ deferred";
+ PGSQL(dbh) "update pages set url_deleted = url, url = null
+ where hostid = $hostid and url = $page";
+ PGSQL(dbh) "insert into pages (hostid, url, title,
+ description, creation_date, logged_ip,
+ logged_user, redirect, css)
+ values ($hostid, $page, $title, $description, $creation_date,
+ $?logged_ip, $?logged_user, $?redirect, $?css)";
+
+ let pageid = PGOCaml.serial4 dbh "pages_id_seq" in
+
+ PGSQL(dbh) "insert into contents (pageid, ordering,
+ sectionname, content, divname)
+ select $pageid, ordering, sectionname, content, divname
+ from contents
+ where pageid = $version";
+
+ (* Keep the links table in synch. *)
+ Cocanwiki_links.update_links_for_page dbh hostid page;
+
+ PGOCaml.commit dbh;