diff --git a/common/version.h b/common/version.h index 411493356..40efffa5a 100644 --- a/common/version.h +++ b/common/version.h @@ -30,7 +30,7 @@ Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt */ -#define CURRENT_BINARY_DATABASE_VERSION 9110 +#define CURRENT_BINARY_DATABASE_VERSION 9111 #ifdef BOTS #define CURRENT_BINARY_BOTS_DATABASE_VERSION 9017 #else diff --git a/utils/sql/db_update_manifest.txt b/utils/sql/db_update_manifest.txt index b4dce6c86..fc97ffc1b 100644 --- a/utils/sql/db_update_manifest.txt +++ b/utils/sql/db_update_manifest.txt @@ -364,6 +364,7 @@ 9108|2017_04_07_ignore_despawn.sql|SHOW COLUMNS FROM `npc_types` LIKE 'ignore_despawn'|empty| 9109|2017_04_08_doors_disable_timer.sql|SHOW COLUMNS FROM `doors` LIKE 'disable_timer'|empty| 9110|2017_04_10_graveyard.sql|show index from graveyard WHERE key_name = 'zone_id_nonunique'|empty| +9111|2017_06_24_saylink_index.sql|SHOW INDEX FROM `saylink` WHERE `key_name` = 'phrase_index'|empty| # Upgrade conditions: # This won't be needed after this system is implemented, but it is used database that are not diff --git a/utils/sql/git/required/2017_06_24_saylink_index.sql b/utils/sql/git/required/2017_06_24_saylink_index.sql new file mode 100644 index 000000000..3dfb5c9ef --- /dev/null +++ b/utils/sql/git/required/2017_06_24_saylink_index.sql @@ -0,0 +1,2 @@ +ALTER TABLE `saylink` +ADD INDEX `phrase_index` (`phrase`) USING BTREE ; \ No newline at end of file diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index 34c1d2bc3..757098c57 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -2743,20 +2743,14 @@ const char* QuestManager::saylink(char* Phrase, bool silent, const char* LinkNam if (results.RowCount() >= 1) { for (auto row = results.begin();row != results.end(); ++row) sayid = atoi(row[0]); - } else { // Add a new saylink entry to the database and query it again for the new sayid number + } else { std::string insert_query = StringFormat("INSERT INTO `saylink` (`phrase`) VALUES ('%s')", escaped_string); results = database.QueryDatabase(insert_query); if (!results.Success()) { Log(Logs::General, Logs::Error, "Error in saylink phrase queries", results.ErrorMessage().c_str()); - } else { - results = database.QueryDatabase(query); - if (results.Success()) { - if (results.RowCount() >= 1) - for(auto row = results.begin(); row != results.end(); ++row) - sayid = atoi(row[0]); - } else { - Log(Logs::General, Logs::Error, "Error in saylink phrase queries", results.ErrorMessage().c_str()); - } + } + else { + sayid = results.LastInsertedID(); } } }