diff --git a/contrib/RealmMerge/RealmMerge.cpp b/contrib/RealmMerge/RealmMerge.cpp index 4d05d49ca0b..d02042306d5 100644 --- a/contrib/RealmMerge/RealmMerge.cpp +++ b/contrib/RealmMerge/RealmMerge.cpp @@ -177,59 +177,60 @@ bool UpdateCharacterGuids() int64 const maxCharGuid1 = *characterGuids.existingKeys1.rbegin(); int64 const maxCharGuid2 = *characterGuids.existingKeys2.rbegin(); + int64 const maxCharGuid = std::max(maxCharGuid1, maxCharGuid2); - if (INT32_MAX > int64(maxCharGuid1 + maxCharGuid2)) + if (INT32_MAX > int64(maxCharGuid + maxCharGuid2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating character guids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `auction` SET `seller_guid` = (`seller_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `auction` SET `buyer_guid` = (`buyer_guid` + %u) WHERE `buyer_guid` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `characters` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_account_data` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_action` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_aura` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_aura` SET `caster_guid` = (`caster_guid` + %u) WHERE `caster_guid` <= %u", maxCharGuid1, maxCharGuid2); - CharacterDatabase2.PExecute("UPDATE `character_battleground_data` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_deleted_items` SET `player_guid` = (`player_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_forgotten_skills` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_gifts` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_homebind` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_honor_cp` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_instance` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_inventory` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_pet` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_queststatus` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_reputation` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_skills` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_social` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_social` SET `friend` = (`friend` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_spell` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_spell_cooldown` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `character_stats` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `corpse` SET `player_guid` = (`player_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `closed_by` = (`closed_by` + %u) WHERE `closed_by` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `assigned_to` = (`assigned_to` + %u) WHERE `assigned_to` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `groups` SET `leader_guid` = (`leader_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `groups` SET `main_tank_guid` = (`main_tank_guid` + %u) WHERE `main_tank_guid` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `groups` SET `main_assistant_guid` = (`main_assistant_guid` + %u) WHERE `main_assistant_guid` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `groups` SET `looter_guid` = (`looter_guid` + %u) WHERE `looter_guid` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `group_instance` SET `leader_guid` = (`leader_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `group_member` SET `member_guid` = (`member_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `guild` SET `leader_guid` = (`leader_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `guild_eventlog` SET `player_guid1` = (`player_guid1` + %u) WHERE `player_guid1` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `guild_eventlog` SET `player_guid2` = (`player_guid2` + %u) WHERE `player_guid2` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `guild_member` SET `guid` = (`guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `item_instance` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `item_instance` SET `creator_guid` = (`creator_guid` + %u) WHERE `creator_guid` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `item_instance` SET `gift_creator_guid` = (`gift_creator_guid` + %u) WHERE `gift_creator_guid` != 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `item_loot` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `mail` SET `sender_guid` = (`sender_guid` + %u) WHERE `mail_template_id` = 0", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `mail` SET `receiver_guid` = (`receiver_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `mail_items` SET `receiver_guid` = (`receiver_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `petition` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `petition_sign` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `petition_sign` SET `player_guid` = (`player_guid` + %u)", maxCharGuid1); - CharacterDatabase2.PExecute("UPDATE `pet_aura` SET `caster_guid` = (`caster_guid` + %u) WHERE `caster_guid` <= %u", maxCharGuid1, maxCharGuid2); + CharacterDatabase2.PExecute("UPDATE `auction` SET `seller_guid` = (`seller_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `auction` SET `buyer_guid` = (`buyer_guid` + %u) WHERE `buyer_guid` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `characters` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_account_data` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_action` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_aura` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_aura` SET `caster_guid` = (`caster_guid` + %u) WHERE `caster_guid` <= %u", maxCharGuid, maxCharGuid2); + CharacterDatabase2.PExecute("UPDATE `character_battleground_data` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_deleted_items` SET `player_guid` = (`player_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_forgotten_skills` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_gifts` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_homebind` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_honor_cp` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_instance` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_inventory` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_pet` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_queststatus` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_reputation` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_skills` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_social` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_social` SET `friend` = (`friend` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_spell` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_spell_cooldown` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `character_stats` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `corpse` SET `player_guid` = (`player_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `closed_by` = (`closed_by` + %u) WHERE `closed_by` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `assigned_to` = (`assigned_to` + %u) WHERE `assigned_to` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `groups` SET `leader_guid` = (`leader_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `groups` SET `main_tank_guid` = (`main_tank_guid` + %u) WHERE `main_tank_guid` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `groups` SET `main_assistant_guid` = (`main_assistant_guid` + %u) WHERE `main_assistant_guid` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `groups` SET `looter_guid` = (`looter_guid` + %u) WHERE `looter_guid` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `group_instance` SET `leader_guid` = (`leader_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `group_member` SET `member_guid` = (`member_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `guild` SET `leader_guid` = (`leader_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `guild_eventlog` SET `player_guid1` = (`player_guid1` + %u) WHERE `player_guid1` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `guild_eventlog` SET `player_guid2` = (`player_guid2` + %u) WHERE `player_guid2` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `guild_member` SET `guid` = (`guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `item_instance` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `item_instance` SET `creator_guid` = (`creator_guid` + %u) WHERE `creator_guid` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `item_instance` SET `gift_creator_guid` = (`gift_creator_guid` + %u) WHERE `gift_creator_guid` != 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `item_loot` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `mail` SET `sender_guid` = (`sender_guid` + %u) WHERE `mail_template_id` = 0", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `mail` SET `receiver_guid` = (`receiver_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `mail_items` SET `receiver_guid` = (`receiver_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `petition` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `petition_sign` SET `owner_guid` = (`owner_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `petition_sign` SET `player_guid` = (`player_guid` + %u)", maxCharGuid); + CharacterDatabase2.PExecute("UPDATE `pet_aura` SET `caster_guid` = (`caster_guid` + %u) WHERE `caster_guid` <= %u", maxCharGuid, maxCharGuid2); } else { @@ -358,19 +359,21 @@ bool UpdateItemGuids() { int64 const maxItemGuid1 = *itemGuids.existingKeys1.rbegin(); int64 const maxItemGuid2 = *itemGuids.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxItemGuid1 + maxItemGuid2)) + int64 const maxItemGuid = std::max(maxItemGuid1, maxItemGuid2); + + if (INT32_MAX > int64(maxItemGuid + maxItemGuid2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating item guids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `auction` SET `item_guid` = (`item_guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `character_aura` SET `item_guid` = (`item_guid` + %u) WHERE `item_guid` != 0", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `character_gifts` SET `item_guid` = (`item_guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `character_inventory` SET `item_guid` = (`item_guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `character_inventory` SET `bag` = (`bag` + %u) WHERE `bag` != 0", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `item_instance` SET `guid` = (`guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `item_loot` SET `guid` = (`guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `mail_items` SET `item_guid` = (`item_guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `petition` SET `charter_guid` = (`charter_guid` + %u)", maxItemGuid1); - CharacterDatabase2.PExecute("UPDATE `pet_aura` SET `item_guid` = (`item_guid` + %u) WHERE `item_guid` != 0", maxItemGuid1); + CharacterDatabase2.PExecute("UPDATE `auction` SET `item_guid` = (`item_guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `character_aura` SET `item_guid` = (`item_guid` + %u) WHERE `item_guid` != 0", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `character_gifts` SET `item_guid` = (`item_guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `character_inventory` SET `item_guid` = (`item_guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `character_inventory` SET `bag` = (`bag` + %u) WHERE `bag` != 0", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `item_instance` SET `guid` = (`guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `item_loot` SET `guid` = (`guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `mail_items` SET `item_guid` = (`item_guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `petition` SET `charter_guid` = (`charter_guid` + %u)", maxItemGuid); + CharacterDatabase2.PExecute("UPDATE `pet_aura` SET `item_guid` = (`item_guid` + %u) WHERE `item_guid` != 0", maxItemGuid); } else { @@ -443,11 +446,13 @@ bool UpdatePetitionGuids() { int64 const maxPetitionGuid1 = *petitionGuids.existingKeys1.rbegin(); int64 const maxPetitionGuid2 = *petitionGuids.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxPetitionGuid1 + maxPetitionGuid2)) + int64 const maxPetitionGuid = std::max(maxPetitionGuid1, maxPetitionGuid2); + + if (INT32_MAX > int64(maxPetitionGuid + maxPetitionGuid2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating petition guids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `petition` SET `petition_guid` = (`petition_guid` + %u)", maxPetitionGuid1); - CharacterDatabase2.PExecute("UPDATE `petition_sign` SET `petition_guid` = (`petition_guid` + %u)", maxPetitionGuid1); + CharacterDatabase2.PExecute("UPDATE `petition` SET `petition_guid` = (`petition_guid` + %u)", maxPetitionGuid); + CharacterDatabase2.PExecute("UPDATE `petition_sign` SET `petition_guid` = (`petition_guid` + %u)", maxPetitionGuid); } else { @@ -512,13 +517,15 @@ bool UpdatePetGuids() { int64 const maxPetGuid1 = *petGuids.existingKeys1.rbegin(); int64 const maxPetGuid2 = *petGuids.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxPetGuid1 + maxPetGuid2)) + int64 const maxPetGuid = std::max(maxPetGuid1, maxPetGuid2); + + if (INT32_MAX > int64(maxPetGuid + maxPetGuid2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating pet guids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `character_pet` SET `id` = (`id` + %u)", maxPetGuid1); - CharacterDatabase2.PExecute("UPDATE `pet_aura` SET `guid` = (`guid` + %u)", maxPetGuid1); - CharacterDatabase2.PExecute("UPDATE `pet_spell` SET `guid` = (`guid` + %u)", maxPetGuid1); - CharacterDatabase2.PExecute("UPDATE `pet_spell_cooldown` SET `guid` = (`guid` + %u)", maxPetGuid1); + CharacterDatabase2.PExecute("UPDATE `character_pet` SET `id` = (`id` + %u)", maxPetGuid); + CharacterDatabase2.PExecute("UPDATE `pet_aura` SET `guid` = (`guid` + %u)", maxPetGuid); + CharacterDatabase2.PExecute("UPDATE `pet_spell` SET `guid` = (`guid` + %u)", maxPetGuid); + CharacterDatabase2.PExecute("UPDATE `pet_spell_cooldown` SET `guid` = (`guid` + %u)", maxPetGuid); } else { @@ -585,10 +592,12 @@ bool UpdateCorpseGuids() { int64 const maxCorpseGuid1 = *corpseGuids.existingKeys1.rbegin(); int64 const maxCorpseGuid2 = *corpseGuids.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxCorpseGuid1 + maxCorpseGuid2)) + int64 const maxCorpseGuid = std::max(maxCorpseGuid1, maxCorpseGuid2); + + if (INT32_MAX > int64(maxCorpseGuid + maxCorpseGuid2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating corpse guids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `corpse` SET `guid` = (`guid` + %u)", maxCorpseGuid1); + CharacterDatabase2.PExecute("UPDATE `corpse` SET `guid` = (`guid` + %u)", maxCorpseGuid); } else { @@ -652,11 +661,13 @@ bool UpdateGroupIds() { int64 const maxGroupId1 = *groupIds.existingKeys1.rbegin(); int64 const maxGroupId2 = *groupIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxGroupId1 + maxGroupId2)) + int64 const maxGroupId = std::max(maxGroupId1, maxGroupId2); + + if (INT32_MAX > int64(maxGroupId + maxGroupId2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating group ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `groups` SET `group_id` = (`group_id` + %u)", maxGroupId1); - CharacterDatabase2.PExecute("UPDATE `group_member` SET `group_id` = (`group_id` + %u)", maxGroupId1); + CharacterDatabase2.PExecute("UPDATE `groups` SET `group_id` = (`group_id` + %u)", maxGroupId); + CharacterDatabase2.PExecute("UPDATE `group_member` SET `group_id` = (`group_id` + %u)", maxGroupId); } else { @@ -721,13 +732,15 @@ bool UpdateGuildIds() { int64 const maxGuildId1 = *guildIds.existingKeys1.rbegin(); int64 const maxGuildId2 = *guildIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxGuildId1 + maxGuildId2)) + int64 const maxGuildId = std::max(maxGuildId1, maxGuildId2); + + if (INT32_MAX > int64(maxGuildId + maxGuildId2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating guild ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `guild` SET `guild_id` = (`guild_id` + %u)", maxGuildId1); - CharacterDatabase2.PExecute("UPDATE `guild_eventlog` SET `guild_id` = (`guild_id` + %u)", maxGuildId1); - CharacterDatabase2.PExecute("UPDATE `guild_member` SET `guild_id` = (`guild_id` + %u)", maxGuildId1); - CharacterDatabase2.PExecute("UPDATE `guild_rank` SET `guild_id` = (`guild_id` + %u)", maxGuildId1); + CharacterDatabase2.PExecute("UPDATE `guild` SET `guild_id` = (`guild_id` + %u)", maxGuildId); + CharacterDatabase2.PExecute("UPDATE `guild_eventlog` SET `guild_id` = (`guild_id` + %u)", maxGuildId); + CharacterDatabase2.PExecute("UPDATE `guild_member` SET `guild_id` = (`guild_id` + %u)", maxGuildId); + CharacterDatabase2.PExecute("UPDATE `guild_rank` SET `guild_id` = (`guild_id` + %u)", maxGuildId); } else { @@ -794,16 +807,18 @@ bool UpdateInstanceIds() { int64 const maxInstanceId1 = *instanceIds.existingKeys1.rbegin(); int64 const maxInstanceId2 = *instanceIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxInstanceId1 + maxInstanceId2)) + int64 const maxInstanceId = std::max(maxInstanceId1, maxInstanceId2); + + if (INT32_MAX > int64(maxInstanceId + maxInstanceId2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating instance ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `character_battleground_data` SET `instance_id` = (`instance_id` + %u) WHERE `instance_id` != 0", maxInstanceId1); - CharacterDatabase2.PExecute("UPDATE `character_instance` SET `instance` = (`instance` + %u)", maxInstanceId1); - CharacterDatabase2.PExecute("UPDATE `corpse` SET `instance` = (`instance` + %u) WHERE `instance` != 0", maxInstanceId1); - CharacterDatabase2.PExecute("UPDATE `creature_respawn` SET `instance` = (`instance` + %u) WHERE `instance` != 0", maxInstanceId1); - CharacterDatabase2.PExecute("UPDATE `gameobject_respawn` SET `instance` = (`instance` + %u) WHERE `instance` != 0", maxInstanceId1); - CharacterDatabase2.PExecute("UPDATE `group_instance` SET `instance` = (`instance` + %u)", maxInstanceId1); - CharacterDatabase2.PExecute("UPDATE `instance` SET `id` = (`id` + %u)", maxInstanceId1); + CharacterDatabase2.PExecute("UPDATE `character_battleground_data` SET `instance_id` = (`instance_id` + %u) WHERE `instance_id` != 0", maxInstanceId); + CharacterDatabase2.PExecute("UPDATE `character_instance` SET `instance` = (`instance` + %u)", maxInstanceId); + CharacterDatabase2.PExecute("UPDATE `corpse` SET `instance` = (`instance` + %u) WHERE `instance` != 0", maxInstanceId); + CharacterDatabase2.PExecute("UPDATE `creature_respawn` SET `instance` = (`instance` + %u) WHERE `instance` != 0", maxInstanceId); + CharacterDatabase2.PExecute("UPDATE `gameobject_respawn` SET `instance` = (`instance` + %u) WHERE `instance` != 0", maxInstanceId); + CharacterDatabase2.PExecute("UPDATE `group_instance` SET `instance` = (`instance` + %u)", maxInstanceId); + CharacterDatabase2.PExecute("UPDATE `instance` SET `id` = (`id` + %u)", maxInstanceId); } else { @@ -873,11 +888,13 @@ bool UpdateMailIds() { int64 const maxMailId1 = *mailIds.existingKeys1.rbegin(); int64 const maxMailid2 = *mailIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxMailId1 + maxMailid2)) + int64 const maxMailid = std::max(maxMailId1, maxMailid2); + + if (INT32_MAX > int64(maxMailid + maxMailid2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating mail ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `mail` SET `id` = (`id` + %u)", maxMailId1); - CharacterDatabase2.PExecute("UPDATE `mail_items` SET `mail_id` = (`mail_id` + %u)", maxMailId1); + CharacterDatabase2.PExecute("UPDATE `mail` SET `id` = (`id` + %u)", maxMailid); + CharacterDatabase2.PExecute("UPDATE `mail_items` SET `mail_id` = (`mail_id` + %u)", maxMailid); } else { @@ -942,12 +959,14 @@ bool UpdateItemTextIds() { int64 const maxItemTextId1 = *itemTextIds.existingKeys1.rbegin(); int64 const maxItemTextId2 = *itemTextIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxItemTextId1 + maxItemTextId2)) + int64 const maxItemTextId = std::max(maxItemTextId1, maxItemTextId2); + + if (INT32_MAX > int64(maxItemTextId + maxItemTextId2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating item text ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `item_instance` SET `text` = (`text` + %u) WHERE `text` != 0", maxItemTextId1); - CharacterDatabase2.PExecute("UPDATE `item_text` SET `id` = (`id` + %u)", maxItemTextId1); - CharacterDatabase2.PExecute("UPDATE `mail` SET `item_text_id` = (`item_text_id` + %u) WHERE `item_text_id` != 0", maxItemTextId1); + CharacterDatabase2.PExecute("UPDATE `item_instance` SET `text` = (`text` + %u) WHERE `text` != 0", maxItemTextId); + CharacterDatabase2.PExecute("UPDATE `item_text` SET `id` = (`id` + %u)", maxItemTextId); + CharacterDatabase2.PExecute("UPDATE `mail` SET `item_text_id` = (`item_text_id` + %u) WHERE `item_text_id` != 0", maxItemTextId); } else { @@ -1013,10 +1032,12 @@ bool UpdateAuctionIds() { int64 const maxAuctionId1 = *auctionIds.existingKeys1.rbegin(); int64 const maxAuctionId2 = *auctionIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxAuctionId1 + maxAuctionId2)) + int64 const maxAuctionId = std::max(maxAuctionId1, maxAuctionId2); + + if (INT32_MAX > int64(maxAuctionId + maxAuctionId2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating auction ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `auction` SET `id` = (`id` + %u)", maxAuctionId1); + CharacterDatabase2.PExecute("UPDATE `auction` SET `id` = (`id` + %u)", maxAuctionId); } else { @@ -1080,10 +1101,12 @@ bool UpdateTicketIds() { int64 const maxTicketId1 = *ticketIds.existingKeys1.rbegin(); int64 const maxTicketId2 = *ticketIds.existingKeys2.rbegin(); - if (INT32_MAX > int64(maxTicketId1 + maxTicketId2)) + int64 const maxTicketId = std::max(maxTicketId1, maxTicketId2); + + if (INT32_MAX > int64(maxTicketId + maxTicketId2)) { sLog.Out(LOG_BASIC, LOG_LVL_MINIMAL, "Updating ticket ids (fast method)..."); - CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `ticket_id` = (`ticket_id` + %u)", maxTicketId1); + CharacterDatabase2.PExecute("UPDATE `gm_tickets` SET `ticket_id` = (`ticket_id` + %u)", maxTicketId); } else {