Core/DBLayer: Prevent committing transactions started on a different database

(cherry picked from commit f6e2b8cdc1)

# Conflicts:
#	src/server/bnetserver/REST/LoginRESTService.cpp
#	src/server/database/Database/DatabaseWorkerPool.cpp
#	src/server/database/Database/DatabaseWorkerPool.h
#	src/server/database/Database/Implementation/HotfixDatabase.h
#	src/server/database/Database/MySQLConnection.h
#	src/server/database/Database/Transaction.cpp
#	src/server/database/Database/Transaction.h
#	src/server/game/Achievements/AchievementMgr.cpp
#	src/server/game/Achievements/AchievementMgr.h
#	src/server/game/AuctionHouse/AuctionHouseMgr.cpp
#	src/server/game/AuctionHouse/AuctionHouseMgr.h
#	src/server/game/BattlePets/BattlePetMgr.cpp
#	src/server/game/BattlePets/BattlePetMgr.h
#	src/server/game/BlackMarket/BlackMarketMgr.cpp
#	src/server/game/BlackMarket/BlackMarketMgr.h
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/game/Entities/Item/Item.cpp
#	src/server/game/Entities/Item/Item.h
#	src/server/game/Entities/Player/CollectionMgr.cpp
#	src/server/game/Entities/Player/CollectionMgr.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Garrison/Garrison.cpp
#	src/server/game/Garrison/Garrison.h
#	src/server/game/Groups/Group.cpp
#	src/server/game/Guilds/Guild.cpp
#	src/server/game/Guilds/Guild.h
#	src/server/game/Guilds/GuildFinderMgr.cpp
#	src/server/game/Handlers/BlackMarketHandler.cpp
#	src/server/game/Handlers/CalendarHandler.cpp
#	src/server/game/Handlers/CharacterHandler.cpp
#	src/server/game/Handlers/MailHandler.cpp
#	src/server/game/Handlers/PetHandler.cpp
#	src/server/game/Handlers/PetitionsHandler.cpp
#	src/server/game/Mails/Mail.cpp
#	src/server/game/Pools/PoolMgr.cpp
#	src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
#	src/server/game/Quests/QuestObjectiveCriteriaMgr.h
#	src/server/game/Scenarios/InstanceScenario.cpp
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Server/WorldSession.h
#	src/server/game/Spells/SpellHistory.cpp
#	src/server/game/Support/SupportMgr.cpp
#	src/server/game/Tools/PlayerDump.cpp
#	src/server/scripts/Commands/cs_misc.cpp
This commit is contained in:
Shauren
2019-07-27 10:52:33 +02:00
committed by Giacomo Pozzoni
parent fe1003bdbd
commit 635b8d52d5
80 changed files with 409 additions and 385 deletions

View File

@@ -29,7 +29,7 @@ std::mutex TransactionTask::_deadlockLock;
#define DEADLOCK_MAX_RETRY_TIME_MS 60000
//- Append a raw ad-hoc query to the transaction
void Transaction::Append(char const* sql)
void TransactionBase::Append(char const* sql)
{
SQLElementData data;
data.type = SQL_ELEMENT_RAW;
@@ -38,7 +38,7 @@ void Transaction::Append(char const* sql)
}
//- Append a prepared statement to the transaction
void Transaction::Append(PreparedStatementBase* stmt)
void TransactionBase::AppendPreparedStatement(PreparedStatementBase* stmt)
{
SQLElementData data;
data.type = SQL_ELEMENT_PREPARED;
@@ -46,7 +46,7 @@ void Transaction::Append(PreparedStatementBase* stmt)
m_queries.push_back(data);
}
void Transaction::Cleanup()
void TransactionBase::Cleanup()
{
// This might be called by explicit calls to Cleanup or by the auto-destructor
if (_cleanedUp)