Last active
April 4, 2020 09:31
-
-
Save Akkadius/e341974521692000aa1eeaa2b6dcb091 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* EQEmulator: Everquest Server Emulator | |
* Copyright (C) 2001-2020 EQEmulator Development Team (https://github.com/EQEmu/Server) | |
* | |
* This program is free software; you can redistribute it and/or modify | |
* it under the terms of the GNU General Public License as published by | |
* the Free Software Foundation; version 2 of the License. | |
* | |
* This program is distributed in the hope that it will be useful, | |
* but WITHOUT ANY WARRANTY except by those people which sell it, which | |
* are required to give you total support for your newly bought product; | |
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |
* A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |
* | |
* You should have received a copy of the GNU General Public License | |
* along with this program; if not, write to the Free Software | |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
* | |
*/ | |
#ifndef EQEMU_INSTANCE_LIST_REPOSITORY_H | |
#define EQEMU_INSTANCE_LIST_REPOSITORY_H | |
#include "../database.h" | |
#include "../string_util.h" | |
class InstanceListRepository { | |
public: | |
struct InstanceList { | |
int id; | |
int zone; | |
int8 version; | |
int8 is_global; | |
int start_time; | |
int duration; | |
int8 never_expires; | |
}; | |
static std::string PrimaryKey() | |
{ | |
return std::string("id"); | |
} | |
static std::vector<std::string> Columns() | |
{ | |
return { | |
"id", | |
"zone", | |
"version", | |
"is_global", | |
"start_time", | |
"duration", | |
"never_expires", | |
}; | |
} | |
static std::string ColumnsRaw() | |
{ | |
return std::string(implode(", ", Columns())); | |
} | |
static std::string InsertColumnsRaw() | |
{ | |
std::vector<std::string> insert_columns; | |
for (auto &column : Columns()) { | |
if (column == PrimaryKey()) { | |
continue; | |
} | |
insert_columns.push_back(column); | |
} | |
return std::string(implode(", ", insert_columns)); | |
} | |
static std::string TableName() | |
{ | |
return std::string("instance_list"); | |
} | |
static std::string BaseSelect() | |
{ | |
return fmt::format( | |
"SELECT {} FROM {}", | |
ColumnsRaw(), | |
TableName() | |
); | |
} | |
static std::string BaseInsert() | |
{ | |
return fmt::format( | |
"INSERT INTO {} ({}) ", | |
TableName(), | |
InsertColumnsRaw() | |
); | |
} | |
static InstanceList NewEntity() | |
{ | |
InstanceList entry{}; | |
entry.id = 0; | |
entry.zone = 0; | |
entry.version = 0; | |
entry.is_global = 0; | |
entry.start_time = 0; | |
entry.duration = 0; | |
entry.never_expires = 0; | |
return entry; | |
} | |
static InstanceList GetInstanceListEntry( | |
const std::vector<InstanceList> &instance_lists, | |
int instance_list_id | |
) | |
{ | |
for (auto &instance_list : instance_lists) { | |
if (instance_list.id == instance_list_id) { | |
return instance_list; | |
} | |
} | |
return NewEntity(); | |
} | |
static InstanceList FindOne( | |
int instance_list_id | |
) | |
{ | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"{} WHERE id = {} LIMIT 1", | |
BaseSelect(), | |
instance_list_id | |
) | |
); | |
auto row = results.begin(); | |
if (results.RowCount() == 1) { | |
InstanceList entry{}; | |
entry.id = atoi(row[0]); | |
entry.zone = atoi(row[1]); | |
entry.version = atoi(row[2]); | |
entry.is_global = atoi(row[3]); | |
entry.start_time = atoi(row[4]); | |
entry.duration = atoi(row[5]); | |
entry.never_expires = atoi(row[6]); | |
return entry; | |
} | |
return NewEntity(); | |
} | |
static int DeleteOne( | |
int instance_list_id | |
) | |
{ | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"DELETE FROM {} WHERE {} = {}", | |
TableName(), | |
PrimaryKey(), | |
instance_list_id | |
) | |
); | |
return (results.Success() ? results.RowsAffected() : 0); | |
} | |
static int UpdateOne( | |
InstanceList instance_list_entry | |
) | |
{ | |
std::vector<std::string> update_values; | |
auto columns = Columns(); | |
update_values.push_back(columns[1] + " = " + std::to_string(instance_list_entry.zone)); | |
update_values.push_back(columns[2] + " = " + std::to_string(instance_list_entry.version)); | |
update_values.push_back(columns[3] + " = " + std::to_string(instance_list_entry.is_global)); | |
update_values.push_back(columns[4] + " = " + std::to_string(instance_list_entry.start_time)); | |
update_values.push_back(columns[5] + " = " + std::to_string(instance_list_entry.duration)); | |
update_values.push_back(columns[6] + " = " + std::to_string(instance_list_entry.never_expires)); | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"UPDATE {} SET {} WHERE {} = {}", | |
TableName(), | |
implode(", ", update_values), | |
PrimaryKey(), | |
instance_list_entry.id | |
) | |
); | |
return (results.Success() ? results.RowsAffected() : 0); | |
} | |
static InstanceList InsertOne( | |
InstanceList instance_list_entry | |
) | |
{ | |
std::vector<std::string> insert_values; | |
insert_values.push_back(std::to_string(instance_list_entry.zone)); | |
insert_values.push_back(std::to_string(instance_list_entry.version)); | |
insert_values.push_back(std::to_string(instance_list_entry.is_global)); | |
insert_values.push_back(std::to_string(instance_list_entry.start_time)); | |
insert_values.push_back(std::to_string(instance_list_entry.duration)); | |
insert_values.push_back(std::to_string(instance_list_entry.never_expires)); | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"{} VALUES ({})", | |
BaseInsert(), | |
implode(",", insert_values) | |
) | |
); | |
if (results.Success()) { | |
instance_list_entry.id = results.LastInsertedID(); | |
return instance_list_entry; | |
} | |
instance_list_entry = InstanceListRepository::NewEntity(); | |
return instance_list_entry; | |
} | |
static int InsertMany( | |
std::vector<InstanceList> instance_list_entries | |
) | |
{ | |
std::vector<std::string> insert_chunks; | |
for (auto &instance_list_entry: instance_list_entries) { | |
std::vector<std::string> insert_values; | |
insert_values.push_back(std::to_string(instance_list_entry.zone)); | |
insert_values.push_back(std::to_string(instance_list_entry.version)); | |
insert_values.push_back(std::to_string(instance_list_entry.is_global)); | |
insert_values.push_back(std::to_string(instance_list_entry.start_time)); | |
insert_values.push_back(std::to_string(instance_list_entry.duration)); | |
insert_values.push_back(std::to_string(instance_list_entry.never_expires)); | |
insert_chunks.push_back("(" + implode(",", insert_values) + ")"); | |
} | |
std::vector<std::string> insert_values; | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"{} VALUES {}", | |
BaseInsert(), | |
implode(",", insert_chunks) | |
) | |
); | |
return (results.Success() ? results.RowsAffected() : 0); | |
} | |
static std::vector<InstanceList> All() | |
{ | |
std::vector<InstanceList> all_entries; | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"{}", | |
BaseSelect() | |
) | |
); | |
all_entries.reserve(results.RowCount()); | |
for (auto row = results.begin(); row != results.end(); ++row) { | |
InstanceList entry{}; | |
entry.id = atoi(row[0]); | |
entry.zone = atoi(row[1]); | |
entry.version = atoi(row[2]); | |
entry.is_global = atoi(row[3]); | |
entry.start_time = atoi(row[4]); | |
entry.duration = atoi(row[5]); | |
entry.never_expires = atoi(row[6]); | |
all_entries.push_back(entry); | |
} | |
return all_entries; | |
} | |
static std::vector<InstanceList> GetWhere(std::string where_filter) | |
{ | |
std::vector<InstanceList> all_entries; | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"{} WHERE {}", | |
BaseSelect(), | |
where_filter | |
) | |
); | |
all_entries.reserve(results.RowCount()); | |
for (auto row = results.begin(); row != results.end(); ++row) { | |
InstanceList entry{}; | |
entry.id = atoi(row[0]); | |
entry.zone = atoi(row[1]); | |
entry.version = atoi(row[2]); | |
entry.is_global = atoi(row[3]); | |
entry.start_time = atoi(row[4]); | |
entry.duration = atoi(row[5]); | |
entry.never_expires = atoi(row[6]); | |
all_entries.push_back(entry); | |
} | |
return all_entries; | |
} | |
static int DeleteWhere(std::string where_filter) | |
{ | |
auto results = database.QueryDatabase( | |
fmt::format( | |
"DELETE FROM {} WHERE {}", | |
TableName(), | |
PrimaryKey(), | |
where_filter | |
) | |
); | |
return (results.Success() ? results.RowsAffected() : 0); | |
} | |
}; | |
#endif //EQEMU_INSTANCE_LIST_REPOSITORY_H | |
#endif //EQEMU_INSTANCE_LIST_REPOSITORY_H | |
############################################# | |
# command example | |
############################################# | |
/** | |
* @param argc | |
* @param argv | |
* @param cmd | |
* @param description | |
*/ | |
void TestRepository(int argc, char **argv, argh::parser &cmd, std::string &description) | |
{ | |
description = "Test command"; | |
if (cmd[{"-h", "--help"}]) { | |
return; | |
} | |
/** | |
* Insert one | |
*/ | |
auto instance_list_entry = InstanceListRepository::NewEntity(); | |
instance_list_entry.zone = 999; | |
instance_list_entry.version = 1; | |
instance_list_entry.is_global = 1; | |
instance_list_entry.start_time = 0; | |
instance_list_entry.duration = 0; | |
instance_list_entry.never_expires = 1; | |
auto instance_list_inserted = InstanceListRepository::InsertOne(instance_list_entry); | |
LogInfo("Inserted ID is [{}] zone [{}]", instance_list_inserted.id, instance_list_inserted.zone); | |
/** | |
* Find one | |
*/ | |
auto found_instance_list = InstanceListRepository::FindOne(instance_list_inserted.id); | |
LogInfo("Found ID is [{}] zone [{}]", found_instance_list.id, found_instance_list.zone); | |
/** | |
* Update one | |
*/ | |
LogInfo("Updating instance id [{}] zone [{}]", found_instance_list.id, found_instance_list.zone); | |
int update_instance_list_count = InstanceListRepository::UpdateOne(found_instance_list); | |
found_instance_list.zone = 777; | |
LogInfo( | |
"Updated instance id [{}] zone [{}] affected [{}]", | |
found_instance_list.id, | |
found_instance_list.zone, | |
update_instance_list_count | |
); | |
/** | |
* Delete one | |
*/ | |
int deleted = InstanceListRepository::DeleteOne(found_instance_list.id) ; | |
LogInfo("Deleting one instance [{}] deleted count [{}]", found_instance_list.id, deleted); | |
/** | |
* Insert many | |
*/ | |
std::vector<InstanceListRepository::InstanceList> instance_lists; | |
auto instance_list_entry_bulk = InstanceListRepository::NewEntity(); | |
instance_list_entry_bulk.zone = 999; | |
instance_list_entry_bulk.version = 1; | |
instance_list_entry_bulk.is_global = 1; | |
instance_list_entry_bulk.start_time = 0; | |
instance_list_entry_bulk.duration = 0; | |
instance_list_entry_bulk.never_expires = 1; | |
for (int i = 0; i < 10; i++) { | |
instance_lists.push_back(instance_list_entry_bulk); | |
} | |
/** | |
* Fetch all | |
*/ | |
int inserted_count = InstanceListRepository::InsertMany(instance_lists); | |
LogInfo("Bulk insertion test, inserted [{}]", inserted_count); | |
for (auto &entry: InstanceListRepository::GetWhere(fmt::format("zone = {}", 999))) { | |
LogInfo("Iterating through entry id [{}] zone [{}]", entry.id, entry.zone); | |
} | |
/** | |
* Delete where | |
*/ | |
int deleted_count = InstanceListRepository::DeleteWhere(fmt::format("zone = {}", 999)); | |
LogInfo("Bulk deletion test, deleted [{}]", deleted_count); | |
} | |
############################################# | |
# result | |
############################################# | |
./bin/world test:repository | |
[MySQL Query] INSERT INTO instance_list (zone, version, is_global, start_time, duration, never_expires) VALUES (999,1,1,0,0,1) (1 row affected) (0.004825s) | |
[WorldServer] [Info] Inserted ID is [31729] zone [999] | |
[MySQL Query] SELECT id, zone, version, is_global, start_time, duration, never_expires FROM instance_list WHERE id = 31729 LIMIT 1 (1 row returned) (0.000315s) | |
[WorldServer] [Info] Found ID is [31729] zone [999] | |
[WorldServer] [Info] Updating instance id [31729] zone [999] | |
[MySQL Query] UPDATE instance_list SET zone = 999, version = 1, is_global = 1, start_time = 0, duration = 0, never_expires = 1 WHERE id = 31729 (1 row affected) (0.000233s) | |
[WorldServer] [Info] Updated instance id [31729] zone [777] affected [1] | |
[MySQL Query] DELETE FROM instance_list WHERE id = 31729 (1 row affected) (0.003392s) | |
[WorldServer] [Info] Deleting one instance [31729] deleted count [1] | |
[MySQL Query] INSERT INTO instance_list (zone, version, is_global, start_time, duration, never_expires) VALUES (999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1),(999,1,1,0,0,1) (10 rows affected) (0.002468s) | |
[WorldServer] [Info] Bulk insertion test, inserted [10] | |
[MySQL Query] SELECT id, zone, version, is_global, start_time, duration, never_expires FROM instance_list WHERE zone = 999 (184 rows returned) (0.000467s) | |
[WorldServer] [Info] Iterating through entry id [31550] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31551] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31552] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31553] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31554] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31555] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31556] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31557] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31558] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31559] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31560] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31561] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31562] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31563] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31564] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31565] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31566] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31567] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31568] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31569] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31570] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31571] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31572] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31573] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31574] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31575] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31576] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31577] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31578] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31579] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31580] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31581] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31582] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31583] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31584] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31585] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31586] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31587] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31588] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31589] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31590] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31591] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31592] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31593] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31594] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31595] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31596] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31597] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31598] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31599] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31600] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31601] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31602] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31603] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31604] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31605] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31606] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31607] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31608] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31609] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31610] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31611] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31612] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31613] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31614] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31615] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31616] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31617] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31618] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31619] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31620] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31621] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31622] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31623] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31624] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31625] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31626] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31627] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31628] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31629] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31630] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31631] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31632] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31633] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31634] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31635] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31636] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31637] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31638] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31639] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31640] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31641] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31642] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31643] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31644] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31645] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31646] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31647] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31648] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31649] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31650] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31651] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31652] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31653] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31654] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31655] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31656] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31657] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31658] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31659] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31660] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31661] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31662] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31663] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31664] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31665] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31666] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31667] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31668] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31669] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31670] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31671] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31672] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31673] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31675] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31676] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31677] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31678] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31679] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31680] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31681] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31682] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31683] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31684] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31686] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31687] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31688] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31689] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31690] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31691] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31692] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31693] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31694] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31695] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31697] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31698] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31699] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31700] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31701] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31702] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31703] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31704] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31705] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31706] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31708] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31709] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31710] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31711] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31712] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31713] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31714] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31715] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31716] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31717] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31719] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31720] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31721] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31722] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31723] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31724] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31725] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31726] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31727] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31728] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31730] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31731] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31732] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31733] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31734] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31735] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31736] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31737] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31738] zone [999] | |
[WorldServer] [Info] Iterating through entry id [31739] zone [999] | |
[MySQL Query] DELETE FROM instance_list WHERE id (240 rows affected) (0.007848s) | |
[WorldServer] [Info] Bulk deletion test, deleted [240] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment