From f2c4ee83aed05a75a994d687f661523b2018a98c Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 3 Jun 2016 02:36:45 +0100 Subject: Use entity where filter's entity ids directly --- .../service/maintenance/ebuildMetaProcessor.cpp | 18 ++++++++++-------- .../service/maintenance/ebuildMetaProcessor.h | 5 ++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp index a57c674..4b77a31 100644 --- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp @@ -11,7 +11,6 @@ #include "utils/fileUtils.h" #include "utils/dbUtils.h" #include "utils/ebuildCacheParser.h" -#include "utils/entityWhereFilter.h" #include "utils/splitEbuildProps.h" #include #include @@ -36,6 +35,11 @@ namespace Gentoo { const int EbuildMetaProcessor::FILETYPEID = 1; + EbuildMetaProcessor::EbuildMetaProcessor() : + ebuildIds("ebuildId") + { + } + void EbuildMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { @@ -127,14 +131,13 @@ namespace Gentoo { void EbuildMetaProcessor::apply(DB::Connection * dbc) { - if (!ebuildIds.empty()) { - U::EntityWhereFilter ewf("ebuildId", ebuildIds); + if (!ebuildIds.entityIds.empty()) { { dbc->execute("CREATE INDEX idxTmpEbuildDeps ON tmpEbuildDeps(ebuildId, runtime)"); DB::TablePatch t; t.pk = { "ebuildid", "packageid", "versionspec", "flags", "slot", "op" }; t.cols = { "ebuildid", "packageid", "versionspec", "flags", "slot", "op" }; - t.where = &ewf; + t.where = &ebuildIds; DB::StaticSqlWriter sb(sql::maintenance::ebuildDeps.getSql()); t.srcExpr = &sb; @@ -153,7 +156,7 @@ namespace Gentoo { t.dest = "gentoobrowse.ebuild_uses"; t.pk = { "ebuildid", "use" }; t.cols = { "ebuildid", "use" }; - t.where = &ewf; + t.where = &ebuildIds; dbc->patchTable(&t); } { @@ -163,7 +166,7 @@ namespace Gentoo { t.dest = "gentoobrowse.ebuild_archs"; t.pk = { "ebuildid", "arch" }; t.cols = { "ebuildid", "arch" }; - t.where = &ewf; + t.where = &ebuildIds; dbc->patchTable(&t); } } @@ -193,7 +196,7 @@ namespace Gentoo { void EbuildMetaProcessor::perEbuildUpdates(DB::Connection * dbc, const U::EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId) { - U::EntityWhereFilter ewf("ebuildId", ebuildId); + ebuildIds.entityIds.insert(ebuildId); // IUSE if (auto uses = ecp.get("IUSE")) { useInsert->bindParamI(0, ebuildId); @@ -207,7 +210,6 @@ namespace Gentoo { archInsert->execute(); } // Dependencies - ebuildIds.insert(ebuildId); depInsert->bindParamI(1, ebuildId); if (auto depend = ecp.getRange("DEPEND")) { depInsert->bindParamB(5, false); diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h index f4d4b07..6d597cb 100644 --- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h +++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h @@ -7,6 +7,7 @@ #include #include #include +#include "utils/entityWhereFilter.h" namespace Gentoo { namespace Service { @@ -14,6 +15,8 @@ namespace Gentoo { public: static const int FILETYPEID; + EbuildMetaProcessor(); + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; @@ -29,7 +32,7 @@ namespace Gentoo { DB::ModifyCommandPtr depInsert; DB::ModifyCommandPtr useInsert; DB::ModifyCommandPtr archInsert; - std::set ebuildIds; + Utils::EntityWhereFilter ebuildIds; std::set catsDeleteFrom; }; } -- cgit v1.2.3