From 074b7096df795e9dd6706686f748dca3986f831d Mon Sep 17 00:00:00 2001 From: hg <4683435+hgtw@users.noreply.github.com> Date: Wed, 21 Oct 2020 23:28:43 -0400 Subject: [PATCH] Use fmt join for simple query strings --- world/expedition_database.cpp | 20 ++++---------------- zone/dynamiczone.cpp | 8 +------- zone/expedition_database.cpp | 8 +------- 3 files changed, 6 insertions(+), 30 deletions(-) diff --git a/world/expedition_database.cpp b/world/expedition_database.cpp index a9bea02e5..9dde517e9 100644 --- a/world/expedition_database.cpp +++ b/world/expedition_database.cpp @@ -143,29 +143,17 @@ void ExpeditionDatabase::DeleteExpeditions(const std::vector& expediti { LogExpeditionsDetail("Deleting [{}] expedition(s)", expedition_ids.size()); - std::string expedition_ids_query; - for (const auto& expedition_id : expedition_ids) - { - fmt::format_to(std::back_inserter(expedition_ids_query), "{},", expedition_id); - } + std::string expedition_ids_query = fmt::format("{}", fmt::join(expedition_ids, ",")); if (!expedition_ids_query.empty()) { - expedition_ids_query.pop_back(); // trailing comma - - std::string query = fmt::format( - "DELETE FROM expeditions WHERE id IN ({});", expedition_ids_query - ); + auto query = fmt::format("DELETE FROM expeditions WHERE id IN ({});", expedition_ids_query); database.QueryDatabase(query); - query = fmt::format( - "DELETE FROM expedition_members WHERE expedition_id IN ({});", expedition_ids_query - ); + query = fmt::format("DELETE FROM expedition_members WHERE expedition_id IN ({});", expedition_ids_query); database.QueryDatabase(query); - query = fmt::format( - "DELETE FROM expedition_lockouts WHERE expedition_id IN ({});", expedition_ids_query - ); + query = fmt::format("DELETE FROM expedition_lockouts WHERE expedition_id IN ({});", expedition_ids_query); database.QueryDatabase(query); } } diff --git a/zone/dynamiczone.cpp b/zone/dynamiczone.cpp index 5e86ddc00..9eeb7596d 100644 --- a/zone/dynamiczone.cpp +++ b/zone/dynamiczone.cpp @@ -56,18 +56,12 @@ std::unordered_map DynamicZone::LoadMultipleDzFromDatabas { LogDynamicZonesDetail("Loading dynamic zone data for [{}] instances", dynamic_zone_ids.size()); - std::string in_dynamic_zone_ids_query; - for (const auto& dynamic_zone_id : dynamic_zone_ids) - { - fmt::format_to(std::back_inserter(in_dynamic_zone_ids_query), "{},", dynamic_zone_id); - } + std::string in_dynamic_zone_ids_query = fmt::format("{}", fmt::join(dynamic_zone_ids, ",")); std::unordered_map dynamic_zones; if (!in_dynamic_zone_ids_query.empty()) { - in_dynamic_zone_ids_query.pop_back(); // trailing comma - std::string query = fmt::format(SQL( {} WHERE dynamic_zones.id IN ({}); ), DynamicZoneSelectQuery(), in_dynamic_zone_ids_query); diff --git a/zone/expedition_database.cpp b/zone/expedition_database.cpp index 1977b36bd..cb845cc50 100644 --- a/zone/expedition_database.cpp +++ b/zone/expedition_database.cpp @@ -176,19 +176,13 @@ ExpeditionDatabase::LoadMultipleExpeditionLockouts( { LogExpeditionsDetail("Loading internal lockouts for [{}] expeditions", expedition_ids.size()); - std::string in_expedition_ids_query; - for (const auto& expedition_id : expedition_ids) - { - fmt::format_to(std::back_inserter(in_expedition_ids_query), "{},", expedition_id); - } + std::string in_expedition_ids_query = fmt::format("{}", fmt::join(expedition_ids, ",")); // these are loaded into the same container type expeditions use to store lockouts std::unordered_map> lockouts; if (!in_expedition_ids_query.empty()) { - in_expedition_ids_query.pop_back(); // trailing comma - std::string query = fmt::format(SQL( SELECT expedition_lockouts.expedition_id,