diff --git a/400_xowa/src/gplx/xowa/addons/wikis/ctgs/edits/Xoctg_edit_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/ctgs/edits/Xoctg_edit_mgr.java index fe42ebd24..629ef48c6 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/ctgs/edits/Xoctg_edit_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/ctgs/edits/Xoctg_edit_mgr.java @@ -120,11 +120,11 @@ public class Xoctg_edit_mgr { cat_core_tbl.Delete(page_id); } } - public static void Update_page_id(Xowe_wiki wiki, int ns_id, int old_id, int new_id) { + public static void Update_page_id(Xow_db_mgr db_mgr, int ns_id, int old_id, int new_id) { boolean ns_id_is_category = ns_id == Xow_ns_.Tid__category; // get cat_link_tbls - Xodb_cat_link_tbl[] cat_link_tbls = Xodb_cat_link_tbl.Get_catlink_tbls(wiki.Data__core_mgr()); + Xodb_cat_link_tbl[] cat_link_tbls = Xodb_cat_link_tbl.Get_catlink_tbls(db_mgr); // loop cat_link tbls to find linked categories for (Xodb_cat_link_tbl cat_link_tbl : cat_link_tbls) { @@ -136,7 +136,7 @@ public class Xoctg_edit_mgr { // update cat_core if (ns_id_is_category) { - Xowd_cat_core_tbl cat_core_tbl = Xodb_cat_db_.Get_cat_core_or_fail(wiki.Data__core_mgr()); + Xowd_cat_core_tbl cat_core_tbl = Xodb_cat_db_.Get_cat_core_or_fail(db_mgr); cat_core_tbl.Update_page_id(old_id, new_id); } } diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java index c0c69804f..f7608d9db 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java @@ -115,7 +115,7 @@ public class Xopg_db_mgr { } // cat_core, cat_link - gplx.xowa.addons.wikis.ctgs.edits.Xoctg_edit_mgr.Update_page_id(wiki, ns_id, old_id, new_id); + gplx.xowa.addons.wikis.ctgs.edits.Xoctg_edit_mgr.Update_page_id(db_mgr, ns_id, old_id, new_id); // search_link Srch_search_addon.Get(wiki).Update_links(ns_id, old_id, new_id); diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/Srch_search_addon.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/Srch_search_addon.java index 9c5aae666..0be99cb59 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/Srch_search_addon.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/Srch_search_addon.java @@ -23,7 +23,7 @@ public class Srch_search_addon implements Xoax_addon_itm, Srch_search_addon_api private final Srch_search_mgr search_mgr; public Srch_search_addon(Xow_wiki wiki) { this.wiki_domain = wiki.Domain_bry(); - this.db_mgr = new Srch_db_mgr(wiki).Init(); + this.db_mgr = new Srch_db_mgr(wiki.Data__core_mgr()).Init(wiki.Stats().Num_pages()); this.ttl_parser = new Srch_text_parser().Init_for_ttl(wiki.Case_mgr()); this.search_mgr = new Srch_search_mgr(this, wiki, ttl_parser); } diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/bldrs/Srch_temp_tbl_wkr.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/bldrs/Srch_temp_tbl_wkr.java index 956deb89b..47f01eca2 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/bldrs/Srch_temp_tbl_wkr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/bldrs/Srch_temp_tbl_wkr.java @@ -46,7 +46,7 @@ class Srch_temp_tbl_wkr implements Srch_text_parser_wkr { search_temp_tbl.Insert_end(); // init - Srch_db_mgr search_db_mgr = search_addon.Db_mgr().Init(); // NOTE: must call .Init for import-offline else Cfg_tbl will be null; note that .Init will bind to newly created search_word / search_link tbl; DATE:2016-04-04 + Srch_db_mgr search_db_mgr = search_addon.Db_mgr().Init(wiki.Stats().Num_pages()); // NOTE: must call .Init for import-offline else Cfg_tbl will be null; note that .Init will bind to newly created search_word / search_link tbl; DATE:2016-04-04 Db_conn word_conn = search_temp_tbl.conn; // update search_word ids if they exist diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java index eca806638..dc2d1651a 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java @@ -19,11 +19,9 @@ package gplx.xowa.addons.wikis.searchs.dbs; import gplx.*; import gplx.xowa.*; i import gplx.dbs.cfgs.*; import gplx.xowa.wikis.data.*; public class Srch_db_mgr { - private final Xow_wiki wiki; - public final Srch_db_upgrade Upgrade_mgr; - public Srch_db_mgr(Xow_wiki wiki) { - this.wiki = wiki; - Upgrade_mgr = new Srch_db_upgrade(wiki, this); + private final Xow_db_mgr db_mgr; + public Srch_db_mgr(Xow_db_mgr db_mgr) { + this.db_mgr = db_mgr; } public Srch_db_cfg Cfg() {return cfg;} private Srch_db_cfg cfg; public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private Db_cfg_tbl tbl__cfg; @@ -32,8 +30,7 @@ public class Srch_db_mgr { public Srch_link_tbl Tbl__link__get_at(int i) {return tbl__link__ary[i];} public int Tbl__link__get_idx(int ns) {return ns == gplx.xowa.wikis.nss.Xow_ns_.Tid__main ? 0 : tbl__link__ary.length - 1;} public Srch_link_tbl[] Tbl__link__ary() {return tbl__link__ary;} private Srch_link_tbl[] tbl__link__ary = Srch_link_tbl.Ary_empty; - public Srch_db_mgr Init() { - Xow_db_mgr db_mgr = wiki.Data__core_mgr(); + public Srch_db_mgr Init(long num_pages) { Xowd_core_db_props db_props = db_mgr.Db__core().Db_props(); Xow_db_file word_db = null; if ( db_props.Schema() == 1 @@ -63,12 +60,12 @@ public class Srch_db_mgr { } } } - cfg = Srch_db_cfg_.New(tbl__cfg, wiki.Stats().Num_pages(), Srch_db_cfg_.Select__version_id(tbl__cfg, tbl__word)); + cfg = Srch_db_cfg_.New(tbl__cfg, num_pages, Srch_db_cfg_.Select__version_id(tbl__cfg, tbl__word)); return this; } public void Delete_all(Xow_db_mgr core_data_mgr) { tbl__word.conn.Meta_tbl_delete(Srch_link_reg_tbl.Tbl_name); - Xowd_core_db_props db_props = wiki.Data__core_mgr().Db__core().Db_props(); + Xowd_core_db_props db_props = db_mgr.Db__core().Db_props(); if ( db_props.Schema() == 1 || db_props.Layout_text().Tid_is_all_or_few()) { // single_db; just drop tables @@ -82,8 +79,7 @@ public class Srch_db_mgr { } } public void Create_all() { - Xow_db_mgr db_mgr = wiki.Data__core_mgr(); - Xowd_core_db_props db_props = wiki.Data__core_mgr().Db__core().Db_props(); + Xowd_core_db_props db_props = db_mgr.Db__core().Db_props(); if ( db_props.Schema() == 1 || db_props.Layout_text().Tid_is_all_or_few()) { // single_db; put both in core_db diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/searchers/Srch_search_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/searchers/Srch_search_mgr.java index cf2f20469..ee689857b 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/searchers/Srch_search_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/searchers/Srch_search_mgr.java @@ -16,6 +16,7 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.xowa.addons.wikis.searchs.searchers; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*; +import gplx.xowa.addons.wikis.searchs.dbs.*; import gplx.xowa.addons.wikis.searchs.searchers.rslts.*; import gplx.xowa.addons.wikis.searchs.searchers.wkrs.*; import gplx.xowa.addons.wikis.searchs.parsers.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.visitors.*; import gplx.core.net.*; import gplx.core.net.qargs.*; @@ -51,7 +52,8 @@ public class Srch_search_mgr implements Gfo_invk { // handle obsolete search dbs; if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()) { - addon.Db_mgr().Upgrade_mgr.Upgrade(); + Srch_db_upgrade upgrade_mgr = new Srch_db_upgrade(wiki, addon.Db_mgr()); + upgrade_mgr.Upgrade(); return; } diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xow_db_mgr.java b/400_xowa/src/gplx/xowa/wikis/data/Xow_db_mgr.java index 1ffb90484..fda97d674 100644 --- a/400_xowa/src/gplx/xowa/wikis/data/Xow_db_mgr.java +++ b/400_xowa/src/gplx/xowa/wikis/data/Xow_db_mgr.java @@ -20,9 +20,10 @@ import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.core.lists.hashs.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.bldrs.infos.*; import gplx.xowa.wikis.metas.*; public class Xow_db_mgr { + private final Io_url wiki_root_dir; + private final String domain_str; // needed for generating new files; EX: en.wikipedia.org-text.ns.001.xowa private final Ordered_hash hash_by_id = Ordered_hash_.New(); private final Xow_db_file_hash hash_by_tids = new Xow_db_file_hash(); private int db_id_next = 0; - private final Io_url wiki_root_dir; private final String domain_str; // needed for generating new files; EX: en.wikipedia.org-text.ns.001.xowa public Xow_db_mgr(Io_url wiki_root_dir, String domain_str) { this.wiki_root_dir = wiki_root_dir; this.domain_str = domain_str;