mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
[11047] Execute transactions in ObjectMgr::PackGroupIds() synchronously on server startup
Signed-off-by: Ambal <pogrebniak@gala.net>
This commit is contained in:
parent
f2a8606b93
commit
2890e0f45a
2 changed files with 7 additions and 1 deletions
|
|
@ -5595,8 +5595,10 @@ void ObjectMgr::PackGroupIds()
|
||||||
|
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
{
|
{
|
||||||
|
CharacterDatabase.BeginTransaction();
|
||||||
CharacterDatabase.PExecute("DELETE FROM groups WHERE groupId = '%u'", id);
|
CharacterDatabase.PExecute("DELETE FROM groups WHERE groupId = '%u'", id);
|
||||||
CharacterDatabase.PExecute("DELETE FROM group_member WHERE groupId = '%u'", id);
|
CharacterDatabase.PExecute("DELETE FROM group_member WHERE groupId = '%u'", id);
|
||||||
|
CharacterDatabase.CommitTransactionDirect();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5616,8 +5618,10 @@ void ObjectMgr::PackGroupIds()
|
||||||
if (*i != groupId)
|
if (*i != groupId)
|
||||||
{
|
{
|
||||||
// remap group id
|
// remap group id
|
||||||
|
CharacterDatabase.BeginTransaction();
|
||||||
CharacterDatabase.PExecute("UPDATE groups SET groupId = '%u' WHERE groupId = '%u'", groupId, *i);
|
CharacterDatabase.PExecute("UPDATE groups SET groupId = '%u' WHERE groupId = '%u'", groupId, *i);
|
||||||
CharacterDatabase.PExecute("UPDATE group_member SET groupId = '%u' WHERE groupId = '%u'", groupId, *i);
|
CharacterDatabase.PExecute("UPDATE group_member SET groupId = '%u' WHERE groupId = '%u'", groupId, *i);
|
||||||
|
CharacterDatabase.CommitTransactionDirect();
|
||||||
}
|
}
|
||||||
|
|
||||||
++groupId;
|
++groupId;
|
||||||
|
|
@ -5661,10 +5665,12 @@ void ObjectMgr::SetHighestGuids()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cleanup other tables from nonexistent guids (>=m_hiItemGuid)
|
// Cleanup other tables from nonexistent guids (>=m_hiItemGuid)
|
||||||
|
CharacterDatabase.BeginTransaction();
|
||||||
CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE item >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE item >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
||||||
CharacterDatabase.PExecute("DELETE FROM mail_items WHERE item_guid >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
CharacterDatabase.PExecute("DELETE FROM mail_items WHERE item_guid >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
||||||
CharacterDatabase.PExecute("DELETE FROM auction WHERE itemguid >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
CharacterDatabase.PExecute("DELETE FROM auction WHERE itemguid >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
||||||
CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE item_guid >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
CharacterDatabase.PExecute("DELETE FROM guild_bank_item WHERE item_guid >= '%u'", m_ItemGuids.GetNextAfterMaxUsed());
|
||||||
|
CharacterDatabase.CommitTransactionDirect();
|
||||||
|
|
||||||
result = WorldDatabase.Query("SELECT MAX(guid) FROM gameobject" );
|
result = WorldDatabase.Query("SELECT MAX(guid) FROM gameobject" );
|
||||||
if( result )
|
if( result )
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "11046"
|
#define REVISION_NR "11047"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue