diff options
| author | leak <leakzx@googlemail.com> | 2011-03-18 00:11:12 +0100 |
|---|---|---|
| committer | leak <leakzx@googlemail.com> | 2011-03-18 00:11:12 +0100 |
| commit | 90a3fee2329571863e907315fc6b5bfc7d1c96f5 (patch) | |
| tree | 0048ad84b02acf5ffea0f958abc84fff3ed055fa /sql/updates | |
| parent | 0e728f2cc3cbddd2348604fb5bcf00f66ae42d7d (diff) | |
Core/GameEventMgr: Reduce memory waste caused by gaps in game_event entry IDs
Diffstat (limited to 'sql/updates')
| -rw-r--r-- | sql/updates/auth_char/2011_03_18_0_characters_game_event_misc.sql | 19 | ||||
| -rw-r--r-- | sql/updates/world/2011_03_18_0_world_game_event_misc.sql | 93 |
2 files changed, 112 insertions, 0 deletions
diff --git a/sql/updates/auth_char/2011_03_18_0_characters_game_event_misc.sql b/sql/updates/auth_char/2011_03_18_0_characters_game_event_misc.sql new file mode 100644 index 00000000000..cc2772a31ac --- /dev/null +++ b/sql/updates/auth_char/2011_03_18_0_characters_game_event_misc.sql @@ -0,0 +1,19 @@ +-- Create temporary table that holds the entry conversion data. (See corresponding world db update) +CREATE TABLE `game_event_temp` ( + `entryOld` TINYINT(3) UNSIGNED NOT NULL, + `entryNew` TINYINT(3) UNSIGNED NOT NULL +) ENGINE=INNODB DEFAULT CHARSET=utf8; + +-- Renumbered entry data +INSERT INTO `game_event_temp` (`entryOld`,`entryNew`) VALUES +(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,12),(13,13),(14,14),(15,15),(16,16),(17,17),(18,18),(19,19),(20,20),(21,21),(22,22), +(23,23),(26,24),(27,25),(28,26),(29,27),(30,28),(31,29),(32,30),(33,31),(34,32),(35,33),(36,34),(37,35),(38,36),(39,37),(40,38),(41,39),(42,40),(43,41),(44,42), +(45,43),(46,44),(47,45),(48,46),(49,47),(50,48),(51,49),(52,50),(53,51),(54,52),(124,53),(125,54),(126,55),(127,56),(128,57),(129,58),(130,59),(131,60); + +-- Update game_event_save +UPDATE `game_event_save`, `game_event_temp` SET `game_event_save`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_save`.`event_id` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_save` CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL; + +-- Update game_event_condition_save +UPDATE `game_event_condition_save`, `game_event_temp` SET `game_event_condition_save`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_condition_save`.`event_id` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_condition_save` CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL; diff --git a/sql/updates/world/2011_03_18_0_world_game_event_misc.sql b/sql/updates/world/2011_03_18_0_world_game_event_misc.sql new file mode 100644 index 00000000000..3856bb0c3db --- /dev/null +++ b/sql/updates/world/2011_03_18_0_world_game_event_misc.sql @@ -0,0 +1,93 @@ +-- Create temporary table that holds the entry conversion data. (Generating numbers by index and autoincrement is not used because +-- we need the same numbers to update the characters db and need to do that without cross db queries +CREATE TABLE `game_event_temp` ( + `entryOld` TINYINT(3) UNSIGNED NOT NULL, + `entryNew` TINYINT(3) UNSIGNED NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- Renumbered entry data +INSERT INTO `game_event_temp` (`entryOld`,`entryNew`) VALUES +(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,12),(13,13),(14,14),(15,15),(16,16),(17,17),(18,18),(19,19),(20,20),(21,21),(22,22), +(23,23),(26,24),(27,25),(28,26),(29,27),(30,28),(31,29),(32,30),(33,31),(34,32),(35,33),(36,34),(37,35),(38,36),(39,37),(40,38),(41,39),(42,40),(43,41),(44,42), +(45,43),(46,44),(47,45),(48,46),(49,47),(50,48),(51,49),(52,50),(53,51),(54,52),(124,53),(125,54),(126,55),(127,56),(128,57),(129,58),(130,59),(131,60); + +-- Update game_event +ALTER TABLE `game_event` DROP PRIMARY KEY; +UPDATE `game_event`, `game_event_temp` SET `game_event`.`entry` = `game_event_temp`.`entryNew` WHERE `game_event`.`entry` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event` +CHANGE `entry` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event', +ADD PRIMARY KEY (`eventEntry`); + +-- Update game_event_battleground_holiday +ALTER TABLE `game_event_battleground_holiday` DROP PRIMARY KEY; +UPDATE `game_event_battleground_holiday`, `game_event_temp` SET `game_event_battleground_holiday`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_battleground_holiday`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_battleground_holiday` +CHANGE `event` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST, +ADD PRIMARY KEY (`eventEntry`); + +-- Update game_event_condition +ALTER TABLE `game_event_condition` DROP PRIMARY KEY; +UPDATE `game_event_condition`, `game_event_temp` SET `game_event_condition`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_condition`.`event_id` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_condition` +CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST, +ADD PRIMARY KEY (`eventEntry`, `condition_id`); + +-- Update game_event_creature +UPDATE `game_event_creature`, `game_event_temp` SET `game_event_creature`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_creature`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_creature` CHANGE `event` `eventEntry` TINYINT(3) NOT NULL COMMENT 'Entry of the game event. Put negative entry to remove during event.' FIRST; + +-- Update game_event_creature_quest +UPDATE `game_event_creature_quest`, `game_event_temp` SET `game_event_creature_quest`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_creature_quest`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_creature_quest` CHANGE `event` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event.' FIRST; + +-- Update game_event_gameobject +UPDATE `game_event_gameobject`, `game_event_temp` SET `game_event_gameobject`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_gameobject`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_gameobject` CHANGE `event` `eventEntry` TINYINT(3) NOT NULL COMMENT 'Entry of the game event. Put negative entry to remove during event.' FIRST; + +-- Update game_event_gameobject_quest +ALTER TABLE `game_event_gameobject_quest` DROP PRIMARY KEY; +UPDATE `game_event_gameobject_quest`, `game_event_temp` SET `game_event_gameobject_quest`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_gameobject_quest`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_gameobject_quest` +CHANGE `event` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST, +ADD PRIMARY KEY (`id`, `quest`, `eventEntry`); + +-- Update game_event_model_equip +UPDATE `game_event_model_equip`, `game_event_temp` SET `game_event_model_equip`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_model_equip`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_model_equip` CHANGE `event` `eventEntry` TINYINT(3) NOT NULL COMMENT 'Entry of the game event.' FIRST; + +-- Update game_event_npc_vendor +UPDATE `game_event_npc_vendor`, `game_event_temp` SET `game_event_npc_vendor`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_npc_vendor`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_npc_vendor` CHANGE `event` `eventEntry` TINYINT(3) NOT NULL COMMENT 'Entry of the game event.' FIRST; + +-- Update game_event_npcflag +ALTER TABLE `game_event_npcflag` DROP PRIMARY KEY; +UPDATE `game_event_npcflag`, `game_event_temp` SET `game_event_npcflag`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_npcflag`.`event_id` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_npcflag` +CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST, +ADD PRIMARY KEY (`guid`, `eventEntry`); + +-- Update game_event_pool +UPDATE `game_event_pool`, `game_event_temp` SET `game_event_pool`.`event` = `game_event_temp`.`entryNew` WHERE `game_event_pool`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_pool` CHANGE `event` `eventEntry` TINYINT(3) NOT NULL COMMENT 'Entry of the game event. Put negative entry to remove during event.' FIRST; + +-- Update game_event_prerequisite +ALTER TABLE `game_event_prerequisite` DROP PRIMARY KEY; +UPDATE `game_event_prerequisite`, `game_event_temp` SET `game_event_prerequisite`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_prerequisite`.`event_id` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_prerequisite` +CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST, +ADD PRIMARY KEY (`eventEntry`, `prerequisite_event`); + +-- Update game_event_quest_condition +UPDATE `game_event_quest_condition`, `game_event_temp` SET `game_event_quest_condition`.`event_id` = `game_event_temp`.`entryNew` WHERE `game_event_quest_condition`.`event_id` = `game_event_temp`.`entryOld`; +ALTER TABLE `game_event_quest_condition` CHANGE `event_id` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event.' FIRST; + +-- Update season_linked_event +ALTER TABLE `season_linked_event` DROP PRIMARY KEY; +UPDATE `season_linked_event`, `game_event_temp` SET `season_linked_event`.`event` = `game_event_temp`.`entryNew` WHERE `season_linked_event`.`event` = `game_event_temp`.`entryOld`; +ALTER TABLE season_linked_event +RENAME TO `game_event_arena_seasons`, +CHANGE `event` `eventEntry` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Entry of the game event' FIRST, +CHANGE `season` `season` TINYINT(3) UNSIGNED NOT NULL COMMENT 'Arena season number'; + +-- Remove temporary table +DROP TABLE `game_event_temp`; |
