1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

Allow hxtn command to be run multiple times during xomp_resume [#482]

This commit is contained in:
gnosygnu
2019-06-07 21:50:18 -04:00
parent 3b6efe4274
commit c459454da3
7 changed files with 20 additions and 10 deletions

View File

@@ -35,8 +35,9 @@ class Xomp_make_hxtn {
Xomp_wkr_db wkr_db = Xomp_wkr_db.New(mgr_db.Dir(), i);
// insert page_tbl
page_tbl.Conn().Env_db_attach("wkr_db", wkr_db.Url());
page_tbl.Conn().Txn_bgn("hxtn_page");
Db_rdr rdr = wkr_db.Conn().Stmt_sql("SELECT * FROM hxtn_page;").Exec_select__rls_auto(); // ANSI.Y
Db_rdr rdr = page_tbl.Conn().Stmt_sql("SELECT DISTINCT src.page_id, src.wkr_id, src.data_id FROM wkr_db.hxtn_page src LEFT JOIN hxtn_page trg ON src.page_id = trg.page_id AND src.wkr_id = trg.wkr_id AND src.data_id = trg.data_id WHERE trg.id IS NULL;").Exec_select__rls_auto(); // ANSI.Y
try {
while (rdr.Move_next()) {
page_tbl.Insert_by_rdr(rdr);
@@ -47,12 +48,13 @@ class Xomp_make_hxtn {
}
} finally {rdr.Rls();}
page_tbl.Conn().Txn_end();
page_tbl.Conn().Env_db_detach("wkr_db");
// insert blob tbl; note that dupes can exist across wkr_dbs (wkr_db 1 and wkr_db 2 both have Template:Abcd)
count = 0;
blob_tbl.Conn().Env_db_attach("wkr_db", wkr_db.Url());
blob_tbl.Conn().Txn_bgn("hxtn_blob");
rdr = blob_tbl.Conn().Stmt_sql("SELECT src.* FROM wkr_db.hxtn_blob src LEFT JOIN hxtn_blob trg ON src.wiki_id = trg.wiki_id AND src.blob_id = trg.blob_id AND src.blob_tid = trg.blob_tid WHERE trg.blob_id IS NULL;").Exec_select__rls_auto(); // ANSI.Y
rdr = blob_tbl.Conn().Stmt_sql("SELECT DISTINCT src.blob_tid, src.wiki_id, src.blob_id, src.zip_tid, src.blob_data FROM wkr_db.hxtn_blob src LEFT JOIN hxtn_blob trg ON src.wiki_id = trg.wiki_id AND src.blob_id = trg.blob_id AND src.blob_tid = trg.blob_tid WHERE trg.blob_id IS NULL;").Exec_select__rls_auto(); // ANSI.Y
try {
while (rdr.Move_next()) {
blob_tbl.Insert_by_rdr(rdr);