Core/CharDB Cleanup: alter character_battleground_data table making column names lowerCamel and move all queries to prepared statements.
This commit is contained in:
@@ -4899,7 +4899,9 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
|
||||
trans->PAppend("DELETE FROM character_equipmentsets WHERE guid = '%u'",guid);
|
||||
trans->PAppend("DELETE FROM guild_eventlog WHERE PlayerGuid1 = '%u' OR PlayerGuid2 = '%u'",guid, guid);
|
||||
trans->PAppend("DELETE FROM guild_bank_eventlog WHERE PlayerGuid = '%u'",guid);
|
||||
trans->PAppend("DELETE FROM character_battleground_data WHERE guid = '%u'",guid);
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_BGDATA);
|
||||
stmt->setUInt32(0, guid);
|
||||
trans->Append(stmt);
|
||||
trans->PAppend("DELETE FROM character_glyphs WHERE guid = '%u'",guid);
|
||||
trans->PAppend("DELETE FROM character_queststatus_daily WHERE guid = '%u'",guid);
|
||||
trans->PAppend("DELETE FROM character_talent WHERE guid = '%u'",guid);
|
||||
@@ -16313,8 +16315,8 @@ void Player::_LoadBGData(PreparedQueryResult result)
|
||||
|
||||
Field* fields = result->Fetch();
|
||||
// Expecting only one row
|
||||
// 0 1 2 3 4 5 6 7 8 9
|
||||
// SELECT instance_id, team, join_x, join_y, join_z, join_o, join_map, taxi_start, taxi_end, mount_spell FROM character_battleground_data WHERE guid = ?
|
||||
// 0 1 2 3 4 5 6 7 8 9
|
||||
// SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell FROM character_battleground_data WHERE guid = ?
|
||||
|
||||
m_bgData.bgInstanceID = fields[0].GetUInt32();
|
||||
m_bgData.bgTeam = fields[1].GetUInt16();
|
||||
@@ -24011,13 +24013,25 @@ void Player::_SaveEquipmentSets(SQLTransaction& trans)
|
||||
|
||||
void Player::_SaveBGData(SQLTransaction& trans)
|
||||
{
|
||||
trans->PAppend("DELETE FROM character_battleground_data WHERE guid='%u'", GetGUIDLow());
|
||||
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_BGDATA);
|
||||
stmt->setUInt32(0, GetGUIDLow());
|
||||
trans->Append(stmt);
|
||||
if (m_bgData.bgInstanceID)
|
||||
{
|
||||
/* guid, bgInstanceID, bgTeam, x, y, z, o, map, taxi[0], taxi[1], mountSpell */
|
||||
trans->PAppend("INSERT INTO character_battleground_data VALUES ('%u', '%u', '%u', '%f', '%f', '%f', '%f', '%u', '%u', '%u', '%u')",
|
||||
GetGUIDLow(), m_bgData.bgInstanceID, m_bgData.bgTeam, m_bgData.joinPos.GetPositionX(), m_bgData.joinPos.GetPositionY(), m_bgData.joinPos.GetPositionZ(),
|
||||
m_bgData.joinPos.GetOrientation(), m_bgData.joinPos.GetMapId(), m_bgData.taxiPath[0], m_bgData.taxiPath[1], m_bgData.mountSpell);
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_PLAYER_BGDATA);
|
||||
stmt->setUInt32(0, GetGUIDLow());
|
||||
stmt->setUInt32(1, m_bgData.bgInstanceID);
|
||||
stmt->setUInt16(2, m_bgData.bgTeam);
|
||||
stmt->setFloat (3, m_bgData.joinPos.GetPositionX());
|
||||
stmt->setFloat (4, m_bgData.joinPos.GetPositionY());
|
||||
stmt->setFloat (5, m_bgData.joinPos.GetPositionZ());
|
||||
stmt->setFloat (6, m_bgData.joinPos.GetOrientation());
|
||||
stmt->setUInt16(7, m_bgData.joinPos.GetMapId());
|
||||
stmt->setUInt16(8, m_bgData.taxiPath[0]);
|
||||
stmt->setUInt16(9, m_bgData.taxiPath[1]);
|
||||
stmt->setUInt16(10,m_bgData.mountSpell);
|
||||
trans->Append(stmt);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_CRITERIAPROGRESS, "SELECT criteria, counter, date FROM character_achievement_progress WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_EQUIPMENTSETS, "SELECT setguid, setindex, name, iconname, item0, item1, item2, item3, item4, item5, item6, item7, item8, "
|
||||
"item9, item10, item11, item12, item13, item14, item15, item16, item17, item18 FROM character_equipmentsets WHERE guid = ? ORDER BY setindex", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_BGDATA, "SELECT instance_id, team, join_x, join_y, join_z, join_o, join_map, taxi_start, taxi_end, mount_spell FROM character_battleground_data WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_BGDATA, "SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell FROM character_battleground_data WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_GLYPHS, "SELECT spec, glyph1, glyph2, glyph3, glyph4, glyph5, glyph6 FROM character_glyphs WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_TALENTS, "SELECT spell, spec FROM character_talent WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_SKILLS, "SELECT skill, value, max FROM character_skills WHERE guid = ?", CONNECTION_ASYNC)
|
||||
@@ -295,4 +295,9 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_STATEMENT(CHAR_UPDATE_ARENA_TEAM_MEMBER, "UPDATE arena_team_member SET weekGames = ?, weekWins = ?, seasonGames = ?, seasonWins = ? WHERE arenaTeamId = ? AND guid = ?", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_UPDATE_ARENA_TEAM_MEMBER_STATS, "REPLACE INTO character_arena_stats (guid, slot, personalRating, matchMakerRating) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PREPARE_STATEMENT(CHAR_LOAD_PLAYER_ARENA_TEAMS, "SELECT arena_team_member.arenaTeamId FROM arena_team_member JOIN arena_team ON arena_team_member.arenaTeamId = arena_team.arenaTeamId WHERE guid = ?", CONNECTION_SYNCH);
|
||||
|
||||
// Character battleground data
|
||||
PREPARE_STATEMENT(CHAR_ADD_PLAYER_BGDATA, "INSERT INTO character_battleground_data (guid, instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_DEL_PLAYER_BGDATA, "DELETE FROM character_battleground_data WHERE guid = ?", CONNECTION_ASYNC)
|
||||
PREPARE_STATEMENT(CHAR_RESET_PLAYERS_BGDATA, "UPDATE character_battleground_data SET instanceId = 0", CONNECTION_SYNCH)
|
||||
}
|
||||
|
||||
@@ -248,10 +248,13 @@ enum CharacterDatabaseStatements
|
||||
CHAR_UPDATE_ARENA_TEAM_MEMBER_STATS,
|
||||
CHAR_LOAD_PLAYER_ARENA_TEAMS,
|
||||
|
||||
|
||||
CHAR_LOAD_PETITION,
|
||||
CHAR_LOAD_PETITION_SIGNATURE,
|
||||
|
||||
CHAR_ADD_PLAYER_BGDATA,
|
||||
CHAR_DEL_PLAYER_BGDATA,
|
||||
CHAR_RESET_PLAYERS_BGDATA,
|
||||
|
||||
MAX_CHARACTERDATABASE_STATEMENTS,
|
||||
};
|
||||
|
||||
|
||||
@@ -486,5 +486,5 @@ void Master::clearOnlineAccounts()
|
||||
CharacterDatabase.DirectExecute("UPDATE characters SET online = 0 WHERE online <> 0");
|
||||
|
||||
// Battleground instance ids reset at server restart
|
||||
CharacterDatabase.DirectExecute("UPDATE character_battleground_data SET instance_id = 0");
|
||||
CharacterDatabase.DirectExecute(CharacterDatabase.GetPreparedStatement(CHAR_RESET_PLAYERS_BGDATA));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user