aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclick <none@none>2010-11-19 15:53:14 +0100
committerclick <none@none>2010-11-19 15:53:14 +0100
commit5cd39040592f526719d99b960a1a0d16499f86b4 (patch)
treeef668f219c2bfc0c56d69312f56ab8f08fe26cb5
parent3e27be75014ec74efc94a8d7bcc03f2391dcc098 (diff)
Core/DBLayer: Move tables reserved_name, gameobject_respawn and creature_respawn from WORLD database to CHARACTER database as it's content is realm-specific and should be preserved (thanks to leak for the cleanup)
*** TO PRESERVE (COPY) THE DATA CONTAINED IN THE OLD TABLES, YOU MUST FOLLOW THE FOLLOWING SQL-RECIPE (REPLACE DATABASENAMES WHERE NEEDED!) *** -- Move creature_respawn from world to characters db INSERT INTO `characters`.`creature_respawn` (`guid`, `respawntime`, `instance`) SELECT `guid, `respawntime` `instance` * FROM `world`.`creature_respawn`; -- Remove creature_respawn table from world db DROP TABLE `world`.`creature_respawn`; -- Move gameobject_respawn from world to characters db INSERT INTO `characters`.`gameobject_respawn` (`guid`, `respawntime`, `instance`) SELECT `guid`, `respawntime`, `instance` FROM `world`.`gameobject_respawn`; -- Remove creature_respawn table from world db DROP TABLE `world`.`gameobject_respawn`; -- Move reserved names from world to characters db INSERT INTO `characters`.`reserved_name` (`name`) SELECT `name` FROM `world`.`reserved_name`; -- Remove reserved_names table from world db DROP TABLE `world`.`reserved_name`; *** THE ABOVE MUST BE DONE, OR EXISTING INSTANCES WILL BE FULLY RESPAWNED - YOU HAVE BEEN WARNED *** Closes issue 4842. Closes issue 4849. --HG-- branch : trunk
-rw-r--r--sql/base/characters_database.sql146
-rw-r--r--sql/base/world_database.sql72
-rw-r--r--sql/updates/10475_characters_character_banned.sql1
-rw-r--r--sql/updates/10475_characters_creature_respawn.sql9
-rw-r--r--sql/updates/10475_characters_gameobject_respawn.sql9
-rw-r--r--sql/updates/10475_characters_reserved_name.sql6
-rwxr-xr-xsrc/server/game/Battlegrounds/Battleground.cpp4
-rwxr-xr-xsrc/server/game/Globals/ObjectMgr.cpp26
-rwxr-xr-xsrc/server/game/Instances/InstanceSaveMgr.cpp37
-rwxr-xr-xsrc/server/shared/Database/Implementation/CharacterDatabase.cpp4
-rwxr-xr-xsrc/server/shared/Database/Implementation/CharacterDatabase.h4
-rwxr-xr-xsrc/server/shared/Database/Implementation/WorldDatabase.cpp3
-rwxr-xr-xsrc/server/shared/Database/Implementation/WorldDatabase.h3
13 files changed, 164 insertions, 160 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql
index 74ad13fe060..b9916340c19 100644
--- a/sql/base/characters_database.sql
+++ b/sql/base/characters_database.sql
@@ -51,7 +51,7 @@ CREATE TABLE `addons` (
`name` varchar(120) NOT NULL default '',
`crc` int(32) unsigned NOT NULL default '0',
PRIMARY KEY (`name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Addons';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Addons';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -218,7 +218,7 @@ CREATE TABLE `bugreport` (
`type` longtext NOT NULL default '',
`content` longtext NOT NULL default '',
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Debug System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Debug System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -246,7 +246,7 @@ CREATE TABLE `channels` (
`m_password` text,
`BannedList` longtext,
PRIMARY KEY (`m_name`(10),`m_team`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Channel System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Channel System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -340,7 +340,7 @@ CREATE TABLE `characters` (
KEY `idx_account` (`account`),
KEY `idx_online` (`online`),
KEY `idx_name` (`name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -440,7 +440,7 @@ CREATE TABLE `character_action` (
`action` int(11) unsigned NOT NULL default '0',
`type` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`,`spec`,`button`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -476,7 +476,7 @@ CREATE TABLE `character_aura` (
`remaintime` int(11) NOT NULL default '0',
`remaincharges` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`,`caster_guid`,`spell`,`effect_mask`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -503,7 +503,7 @@ CREATE TABLE `character_banned` (
`banreason` varchar(255) NOT NULL,
`active` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`guid`,`bandate`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Ban List';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Ban List';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -535,7 +535,7 @@ CREATE TABLE `character_battleground_data` (
`taxi_end` int(11) NOT NULL default '0',
`mount_spell` int(11) NOT NULL default '0',
PRIMARY KEY (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -584,7 +584,7 @@ CREATE TABLE `character_declinedname` (
`instrumental` varchar(15) NOT NULL default '',
`prepositional` varchar(15) NOT NULL default '',
PRIMARY KEY (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -713,7 +713,7 @@ CREATE TABLE `character_homebind` (
`position_y` float NOT NULL default '0',
`position_z` float NOT NULL default '0',
PRIMARY KEY (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -765,7 +765,7 @@ CREATE TABLE `character_inventory` (
`item_template` int(11) unsigned NOT NULL default '0' COMMENT 'Item Identifier',
PRIMARY KEY (`item`),
KEY `idx_guid` (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -806,7 +806,7 @@ CREATE TABLE `character_pet` (
`abdata` longtext,
PRIMARY KEY (`id`),
KEY `owner` (`owner`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Pet System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Pet System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -835,7 +835,7 @@ CREATE TABLE `character_pet_declinedname` (
`prepositional` varchar(12) NOT NULL default '',
PRIMARY KEY (`id`),
KEY owner_key (`owner`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -870,7 +870,7 @@ CREATE TABLE `character_queststatus` (
`itemcount3` smallint(3) unsigned NOT NULL DEFAULT '0',
`itemcount4` smallint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`guid`,`quest`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -895,7 +895,7 @@ CREATE TABLE `character_queststatus_daily` (
`time` bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`,`quest`),
KEY `idx_guid` (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -917,7 +917,7 @@ CREATE TABLE `character_queststatus_weekly` (
`quest` int(11) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
PRIMARY KEY (`guid`,`quest`),
KEY `idx_guid` (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
--
-- Dumping data for table `character_queststatus_weekly`
@@ -941,7 +941,7 @@ CREATE TABLE `character_reputation` (
`standing` int(11) NOT NULL default '0',
`flags` int(11) NOT NULL default '0',
PRIMARY KEY (`guid`,`faction`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -966,7 +966,7 @@ CREATE TABLE `character_skills` (
`value` mediumint(9) unsigned NOT NULL,
`max` mediumint(9) unsigned NOT NULL,
PRIMARY KEY (`guid`,`skill`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -995,7 +995,7 @@ CREATE TABLE `character_social` (
KEY `friend` (`friend`),
KEY `guid_flags` (`guid`,`flags`),
KEY `friend_flags` (`friend`,`flags`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1020,7 +1020,7 @@ CREATE TABLE `character_spell` (
`active` tinyint(3) unsigned NOT NULL default '1',
`disabled` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`,`spell`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1150,7 +1150,7 @@ CREATE TABLE `character_tutorial` (
`tut7` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`account`,`realmid`),
KEY acc_key (`account`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1194,7 +1194,7 @@ CREATE TABLE `corpse` (
KEY `instance` (`instance`),
INDEX `Idx_player`(`player`),
INDEX `Idx_time`(`time`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Death System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Death System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1266,10 +1266,60 @@ CREATE TABLE `gm_subsurveys` (
`rank` int(11) UNSIGNED NOT NULL DEFAULT '0',
`comment` longtext NOT NULL,
PRIMARY KEY (`surveyid`,`subsurveyid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
+-- Table structure for table `creature_respawn`
+--
+
+DROP TABLE IF EXISTS `creature_respawn`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `creature_respawn` (
+ `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
+ `respawntime` bigint(20) NOT NULL DEFAULT '0',
+ `instance` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`guid`,`instance`),
+ KEY `instance` (`instance`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Grid Loading System';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `creature_respawn`
+--
+
+LOCK TABLES `creature_respawn` WRITE;
+/*!40000 ALTER TABLE `creature_respawn` DISABLE KEYS */;
+/*!40000 ALTER TABLE `creature_respawn` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `gameobject_respawn`
+--
+
+DROP TABLE IF EXISTS `gameobject_respawn`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `gameobject_respawn` (
+ `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
+ `respawntime` bigint(20) NOT NULL DEFAULT '0',
+ `instance` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`guid`,`instance`),
+ KEY `instance` (`instance`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Grid Loading System';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `gameobject_respawn`
+--
+
+LOCK TABLES `gameobject_respawn` WRITE;
+/*!40000 ALTER TABLE `gameobject_respawn` DISABLE KEYS */;
+/*!40000 ALTER TABLE `gameobject_respawn` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
-- Dumping data for table `gm_subsurveys`
--
@@ -1291,7 +1341,7 @@ CREATE TABLE `gm_surveys` (
`overall_comment` longtext NOT NULL,
`timestamp` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`surveyid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1328,7 +1378,7 @@ CREATE TABLE `gm_tickets` (
`escalated` int(11) NOT NULL DEFAULT '0',
`viewed` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1450,7 +1500,7 @@ CREATE TABLE `guild` (
`createdate` bigint(20) NOT NULL default '0',
`BankMoney` bigint(20) NOT NULL default '0',
PRIMARY KEY (`guildid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Guild System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1665,7 +1715,7 @@ CREATE TABLE `guild_rank` (
`BankMoneyPerDay` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guildid`,`rid`),
INDEX `Idx_rid`(`rid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Guild System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1754,7 +1804,7 @@ CREATE TABLE `item_instance` (
`text` longtext,
PRIMARY KEY (`guid`),
KEY `idx_owner_guid` (`owner_guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Item System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Item System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1779,7 +1829,7 @@ CREATE TABLE `item_refund_instance` (
`paidMoney` int(11) unsigned NOT NULL DEFAULT '0',
`paidExtendedCost` int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`item_guid`,`player_guid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Item Refund System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Item Refund System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1802,7 +1852,7 @@ CREATE TABLE `item_soulbound_trade_data` (
`itemGuid` int(11) unsigned NOT NULL COMMENT 'Item GUID',
`allowedPlayers` text NOT NULL COMMENT 'Space separated GUID list of players who can receive this item in trade',
PRIMARY KEY (`itemGuid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Item Refund System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Item Refund System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1830,7 +1880,7 @@ CREATE TABLE `lag_reports` (
`posY` float NOT NULL default '0',
`posZ` float NOT NULL default '0',
PRIMARY KEY (`report_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1866,7 +1916,7 @@ CREATE TABLE `mail` (
`checked` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_receiver` (`receiver`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Mail System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Mail System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1928,7 +1978,7 @@ CREATE TABLE `pet_aura` (
`remaintime` int(11) NOT NULL default '0',
`remaincharges` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`,`spell`,`effect_mask`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Pet System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Pet System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -1952,7 +2002,7 @@ CREATE TABLE `pet_spell` (
`spell` int(11) unsigned NOT NULL default '0' COMMENT 'Spell Identifier',
`active` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`,`spell`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Pet System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Pet System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -2002,7 +2052,7 @@ CREATE TABLE `petition` (
`type` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`ownerguid`,`type`),
UNIQUE KEY `index_ownerguid_petitionguid` (`ownerguid`,`petitionguid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Guild System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -2030,7 +2080,7 @@ CREATE TABLE `petition_sign` (
PRIMARY KEY (`petitionguid`,`playerguid`),
INDEX `Idx_playerguid`(`playerguid`),
INDEX `Idx_ownerguid`(`ownerguid`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Guild System';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Guild System';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -2066,6 +2116,28 @@ LOCK TABLES `pool_quest_save` WRITE;
UNLOCK TABLES;
--
+-- Table structure for table `reserved_name`
+--
+
+DROP TABLE IF EXISTS `reserved_name`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `reserved_name` (
+ `name` varchar(12) NOT NULL DEFAULT '',
+ PRIMARY KEY (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player Reserved Names';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `reserved_name`
+--
+
+LOCK TABLES `reserved_name` WRITE;
+/*!40000 ALTER TABLE `reserved_name` DISABLE KEYS */;
+/*!40000 ALTER TABLE `reserved_name` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
-- Table structure for table `worldstates`
--
@@ -2077,7 +2149,7 @@ CREATE TABLE `worldstates` (
`value` bigint(40) UNSIGNED NOT NULL DEFAULT '0',
`comment` text,
PRIMARY KEY (`entry`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Variable Saves';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Variable Saves';
/*!40101 SET character_set_client = @saved_cs_client */;
--
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 8a1f9bf5596..7e0a4e0cc45 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -1575,31 +1575,6 @@ LOCK TABLES `creature_questrelation` WRITE;
UNLOCK TABLES;
--
--- Table structure for table `creature_respawn`
---
-
-DROP TABLE IF EXISTS `creature_respawn`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `creature_respawn` (
- `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
- `respawntime` bigint(20) NOT NULL DEFAULT '0',
- `instance` mediumint(8) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`guid`,`instance`),
- KEY `instance` (`instance`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Grid Loading System';
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `creature_respawn`
---
-
-LOCK TABLES `creature_respawn` WRITE;
-/*!40000 ALTER TABLE `creature_respawn` DISABLE KEYS */;
-/*!40000 ALTER TABLE `creature_respawn` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
-- Table structure for table `creature_template`
--
@@ -2636,31 +2611,6 @@ LOCK TABLES `gameobject_questrelation` WRITE;
UNLOCK TABLES;
--
--- Table structure for table `gameobject_respawn`
---
-
-DROP TABLE IF EXISTS `gameobject_respawn`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `gameobject_respawn` (
- `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
- `respawntime` bigint(20) NOT NULL DEFAULT '0',
- `instance` mediumint(8) unsigned NOT NULL DEFAULT '0',
- PRIMARY KEY (`guid`,`instance`),
- KEY `instance` (`instance`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Grid Loading System';
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `gameobject_respawn`
---
-
-LOCK TABLES `gameobject_respawn` WRITE;
-/*!40000 ALTER TABLE `gameobject_respawn` DISABLE KEYS */;
-/*!40000 ALTER TABLE `gameobject_respawn` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
-- Table structure for table `gameobject_scripts`
--
@@ -16593,28 +16543,6 @@ LOCK TABLES `reputation_spillover_template` WRITE;
UNLOCK TABLES;
--
--- Table structure for table `reserved_name`
---
-
-DROP TABLE IF EXISTS `reserved_name`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `reserved_name` (
- `name` varchar(12) NOT NULL DEFAULT '',
- PRIMARY KEY (`name`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Player Reserved Names';
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `reserved_name`
---
-
-LOCK TABLES `reserved_name` WRITE;
-/*!40000 ALTER TABLE `reserved_name` DISABLE KEYS */;
-/*!40000 ALTER TABLE `reserved_name` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
-- Table structure for table `script_texts`
--
diff --git a/sql/updates/10475_characters_character_banned.sql b/sql/updates/10475_characters_character_banned.sql
new file mode 100644
index 00000000000..1d4789a4f33
--- /dev/null
+++ b/sql/updates/10475_characters_character_banned.sql
@@ -0,0 +1 @@
+ALTER TABLE character_banned ENGINE = InnoDB;
diff --git a/sql/updates/10475_characters_creature_respawn.sql b/sql/updates/10475_characters_creature_respawn.sql
new file mode 100644
index 00000000000..e6964910597
--- /dev/null
+++ b/sql/updates/10475_characters_creature_respawn.sql
@@ -0,0 +1,9 @@
+DROP TABLE IF EXISTS `creature_respawn`;
+CREATE TABLE `creature_respawn` (
+ `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
+ `respawntime` int(10) unsigned NOT NULL DEFAULT '0',
+ `instance` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`guid`,`instance`),
+ KEY `instance` (`instance`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Grid Loading System';
+
diff --git a/sql/updates/10475_characters_gameobject_respawn.sql b/sql/updates/10475_characters_gameobject_respawn.sql
new file mode 100644
index 00000000000..2a5f0c03de7
--- /dev/null
+++ b/sql/updates/10475_characters_gameobject_respawn.sql
@@ -0,0 +1,9 @@
+DROP TABLE IF EXISTS `gameobject_respawn`;
+CREATE TABLE `gameobject_respawn` (
+ `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
+ `respawntime` int(10) unsigned NOT NULL DEFAULT '0',
+ `instance` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`guid`,`instance`),
+ KEY `instance` (`instance`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Grid Loading System';
+
diff --git a/sql/updates/10475_characters_reserved_name.sql b/sql/updates/10475_characters_reserved_name.sql
new file mode 100644
index 00000000000..dedab8b5911
--- /dev/null
+++ b/sql/updates/10475_characters_reserved_name.sql
@@ -0,0 +1,6 @@
+DROP TABLE IF EXISTS `reserved_name`;
+CREATE TABLE `reserved_name` (
+ `name` varchar(12) NOT NULL DEFAULT '',
+ PRIMARY KEY (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player Reserved Names';
+
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 1bfb42ff9e4..be341350964 100755
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -217,8 +217,8 @@ Battleground::~Battleground()
if (GetInstanceID()) // not spam by useless queries in case BG templates
{
// delete creature and go respawn times
- WorldDatabase.PExecute("DELETE FROM creature_respawn WHERE instance = '%u'",GetInstanceID());
- WorldDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance = '%u'",GetInstanceID());
+ CharacterDatabase.PExecute("DELETE FROM creature_respawn WHERE instance = '%u'",GetInstanceID());
+ CharacterDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance = '%u'",GetInstanceID());
// delete instance from db
CharacterDatabase.PExecute("DELETE FROM instance WHERE id = '%u'",GetInstanceID());
// remove from battlegrounds
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 5faa13ac575..47b27d34d1b 100755
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -1814,7 +1814,7 @@ void ObjectMgr::LoadCreatureRespawnTimes()
{
uint32 count = 0;
- QueryResult result = WorldDatabase.Query("SELECT guid,respawntime,instance FROM creature_respawn");
+ QueryResult result = CharacterDatabase.Query("SELECT guid,respawntime,instance FROM creature_respawn");
if (!result)
{
@@ -1850,12 +1850,12 @@ void ObjectMgr::LoadCreatureRespawnTimes()
void ObjectMgr::LoadGameobjectRespawnTimes()
{
// remove outdated data
- PreparedStatement *stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GAMEOBJECT_RESPAWN_TIMES);
- WorldDatabase.Execute(stmt);
+ PreparedStatement *stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GAMEOBJECT_RESPAWN_TIMES);
+ CharacterDatabase.Execute(stmt);
uint32 count = 0;
- QueryResult result = WorldDatabase.Query("SELECT guid,respawntime,instance FROM gameobject_respawn");
+ QueryResult result = CharacterDatabase.Query("SELECT guid,respawntime,instance FROM gameobject_respawn");
if (!result)
{
@@ -7518,18 +7518,18 @@ void ObjectMgr::SaveCreatureRespawnTime(uint32 loguid, uint32 instance, time_t t
m_CreatureRespawnTimesMtx.release();
}
- PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CRESPAWNTIME);
+ PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CRESPAWNTIME);
stmt->setUInt32(0, loguid);
stmt->setUInt32(1, instance);
- WorldDatabase.Execute(stmt);
+ CharacterDatabase.Execute(stmt);
if (t)
{
- stmt = WorldDatabase.GetPreparedStatement(WORLD_ADD_CRESPAWNTIME);
+ stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_CRESPAWNTIME);
stmt->setUInt32(0, loguid);
stmt->setUInt64(1, uint64(t));
stmt->setUInt32(2, instance);
- WorldDatabase.Execute(stmt);
+ CharacterDatabase.Execute(stmt);
}
}
@@ -7552,9 +7552,9 @@ void ObjectMgr::SaveGORespawnTime(uint32 loguid, uint32 instance, time_t t)
m_GORespawnTimesMtx.release();
}
- WorldDatabase.PExecute("DELETE FROM gameobject_respawn WHERE guid = '%u' AND instance = '%u'", loguid, instance);
+ CharacterDatabase.PExecute("DELETE FROM gameobject_respawn WHERE guid = '%u' AND instance = '%u'", loguid, instance);
if (t)
- WorldDatabase.PExecute("INSERT INTO gameobject_respawn VALUES ('%u', '" UI64FMTD "', '%u')", loguid, uint64(t), instance);
+ CharacterDatabase.PExecute("INSERT INTO gameobject_respawn VALUES ('%u', '" UI64FMTD "', '%u')", loguid, uint64(t), instance);
}
void ObjectMgr::DeleteRespawnTimeForInstance(uint32 instance)
@@ -7586,8 +7586,8 @@ void ObjectMgr::DeleteRespawnTimeForInstance(uint32 instance)
}
m_CreatureRespawnTimesMtx.release();
}
- WorldDatabase.PExecute("DELETE FROM creature_respawn WHERE instance = '%u'", instance);
- WorldDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance = '%u'", instance);
+ CharacterDatabase.PExecute("DELETE FROM creature_respawn WHERE instance = '%u'", instance);
+ CharacterDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance = '%u'", instance);
}
void ObjectMgr::DeleteGOData(uint32 guid)
@@ -7725,7 +7725,7 @@ void ObjectMgr::LoadReservedPlayersNames()
{
m_ReservedNames.clear(); // need for reload case
- QueryResult result = WorldDatabase.Query("SELECT name FROM reserved_name");
+ QueryResult result = CharacterDatabase.Query("SELECT name FROM reserved_name");
uint32 count = 0;
diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp
index aee36dce029..882a8653b35 100755
--- a/src/server/game/Instances/InstanceSaveMgr.cpp
+++ b/src/server/game/Instances/InstanceSaveMgr.cpp
@@ -265,7 +265,10 @@ void InstanceSaveManager::CleanupInstances()
_DelHelper("character_instance.guid, instance", "character_instance", "LEFT JOIN instance ON character_instance.instance = instance.id WHERE instance.id IS NULL");
_DelHelper("guid, instance", "group_instance", "LEFT JOIN instance ON group_instance.instance = instance.id WHERE instance.id IS NULL");
- // creature_respawn and gameobject_respawn are in another database
+ // Clean respawn data from non existing instances
+ CharacterDatabase.PExecute("DELETE FROM creature_respawn WHERE instance <> 0 AND instance NOT IN (SELECT id FROM instance)");
+ CharacterDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance <> 0 AND instance NOT IN (SELECT id FROM instance)");
+
// first, obtain total instance set
std::set<uint32> InstanceSet;
QueryResult result = CharacterDatabase.Query("SELECT id FROM instance");
@@ -279,32 +282,6 @@ void InstanceSaveManager::CleanupInstances()
while (result->NextRow());
}
- // creature_respawn
- result = WorldDatabase.Query("SELECT DISTINCT(instance) FROM creature_respawn WHERE instance <> 0");
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- if (InstanceSet.find(fields[0].GetUInt32()) == InstanceSet.end())
- WorldDatabase.PExecute("DELETE FROM creature_respawn WHERE instance = '%u'", fields[0].GetUInt32());
- }
- while (result->NextRow());
- }
-
- // gameobject_respawn
- result = WorldDatabase.Query("SELECT DISTINCT(instance) FROM gameobject_respawn WHERE instance <> 0");
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- if (InstanceSet.find(fields[0].GetUInt32()) == InstanceSet.end())
- WorldDatabase.PExecute("DELETE FROM gameobject_respawn WHERE instance = '%u'", fields[0].GetUInt32());
- }
- while (result->NextRow());
- }
-
// characters
result = CharacterDatabase.Query("SELECT DISTINCT(instance_id) FROM characters WHERE instance_id <> 0");
if (result)
@@ -368,8 +345,8 @@ void InstanceSaveManager::PackInstances()
if (*i != InstanceNumber)
{
// remap instance id
- WorldDatabase.PExecute("UPDATE creature_respawn SET instance = '%u' WHERE instance = '%u'", InstanceNumber, *i);
- WorldDatabase.PExecute("UPDATE gameobject_respawn SET instance = '%u' WHERE instance = '%u'", InstanceNumber, *i);
+ CharacterDatabase.PExecute("UPDATE creature_respawn SET instance = '%u' WHERE instance = '%u'", InstanceNumber, *i);
+ CharacterDatabase.PExecute("UPDATE gameobject_respawn SET instance = '%u' WHERE instance = '%u'", InstanceNumber, *i);
CharacterDatabase.PExecute("UPDATE characters SET instance_id = '%u' WHERE instance_id = '%u'", InstanceNumber, *i);
CharacterDatabase.PExecute("UPDATE corpse SET instance = '%u' WHERE instance = '%u'", InstanceNumber, *i);
CharacterDatabase.PExecute("UPDATE character_instance SET instance = '%u' WHERE instance = '%u'", InstanceNumber, *i);
@@ -420,7 +397,7 @@ void InstanceSaveManager::LoadResetTimes()
while (result->NextRow());
// update reset time for normal instances with the max creature respawn time + X hours
- result = WorldDatabase.Query("SELECT MAX(respawntime), instance FROM creature_respawn WHERE instance > 0 GROUP BY instance");
+ result = CharacterDatabase.Query("SELECT MAX(respawntime), instance FROM creature_respawn WHERE instance > 0 GROUP BY instance");
if (result)
{
do
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index 4963a0b89f3..92257ba9ace 100755
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -211,5 +211,9 @@ bool CharacterDatabaseConnection::Open()
PrepareStatement(CHAR_CLEAN_GUILD_BANK_TABS, "DELETE FROM guild_bank_tab WHERE guildId NOT IN (SELECT guildid FROM guild)");
PrepareStatement(CHAR_CLEAN_GUILD_BANK_RIGHTS, "DELETE FROM guild_bank_right WHERE guildId NOT IN (SELECT guildid FROM guild)");
PrepareStatement(CHAR_CLEAN_GUILD_BANK_ITEMS, "DELETE FROM guild_bank_item WHERE guildId NOT IN (SELECT guildid FROM guild)");
+ PrepareStatement(CHAR_DEL_GAMEOBJECT_RESPAWN_TIMES, "DELETE FROM gameobject_respawn WHERE respawntime <= UNIX_TIMESTAMP(NOW())");
+ PrepareStatement(CHAR_DEL_CRESPAWNTIME, "DELETE FROM creature_respawn WHERE guid = ? AND instance = ?");
+ PrepareStatement(CHAR_ADD_CRESPAWNTIME, "INSERT INTO creature_respawn VALUES (?, ?, ?)");
+
return true;
}
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h
index 041afca2a23..e8fc1b64418 100755
--- a/src/server/shared/Database/Implementation/CharacterDatabase.h
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.h
@@ -177,6 +177,10 @@ enum CharacterDatabaseStatements
CHAR_CLEAN_GUILD_BANK_RIGHTS,
CHAR_CLEAN_GUILD_BANK_ITEMS,
+ CHAR_DEL_GAMEOBJECT_RESPAWN_TIMES,
+ CHAR_DEL_CRESPAWNTIME,
+ CHAR_ADD_CRESPAWNTIME,
+
MAX_CHARACTERDATABASE_STATEMENTS,
};
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.cpp b/src/server/shared/Database/Implementation/WorldDatabase.cpp
index 71cf9c82d45..57c6312f1b8 100755
--- a/src/server/shared/Database/Implementation/WorldDatabase.cpp
+++ b/src/server/shared/Database/Implementation/WorldDatabase.cpp
@@ -29,12 +29,9 @@ bool WorldDatabaseConnection::Open()
LOAD YOUR PREPARED STATEMENTS HERE
##################################
*/
- PrepareStatement(WORLD_DEL_CRESPAWNTIME, "DELETE FROM creature_respawn WHERE guid = ? AND instance = ?");
- PrepareStatement(WORLD_ADD_CRESPAWNTIME, "INSERT INTO creature_respawn VALUES (?, ?, ?)");
PrepareStatement(WORLD_LOAD_QUEST_POOLS, "SELECT entry, pool_entry FROM pool_quest");
PrepareStatement(WORLD_DEL_CRELINKED_RESPAWN, "DELETE FROM creature_linked_respawn WHERE guid = ?");
PrepareStatement(WORLD_REP_CRELINKED_RESPAWN, "REPLACE INTO creature_linked_respawn (guid,linkedGuid) VALUES (?, ?)");
- PrepareStatement(WORLD_DEL_GAMEOBJECT_RESPAWN_TIMES, "DELETE FROM gameobject_respawn WHERE respawntime <= UNIX_TIMESTAMP(NOW())");
PrepareStatement(WORLD_LOAD_CRETEXT, "SELECT entry, groupid, id, text, type, language, probability, emote, duration, sound FROM creature_text");
PrepareStatement(WORLD_LOAD_SMART_SCRIPTS, "SELECT entryorguid, source_type, id, link, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, target_type, target_param1, target_param2, target_param3, target_x, target_y, target_z, target_o FROM smart_scripts ORDER BY entryorguid, source_type, id, link");
PrepareStatement(WORLD_LOAD_SMARTAI_WP, "SELECT entry, pointid, position_x, position_y, position_z FROM waypoints ORDER BY entry, pointid");
diff --git a/src/server/shared/Database/Implementation/WorldDatabase.h b/src/server/shared/Database/Implementation/WorldDatabase.h
index 1995b8e6301..c502ff019f9 100755
--- a/src/server/shared/Database/Implementation/WorldDatabase.h
+++ b/src/server/shared/Database/Implementation/WorldDatabase.h
@@ -42,12 +42,9 @@ enum WorldDatabaseStatements
name for a suiting suffix.
*/
- WORLD_DEL_CRESPAWNTIME,
- WORLD_ADD_CRESPAWNTIME,
WORLD_LOAD_QUEST_POOLS,
WORLD_DEL_CRELINKED_RESPAWN,
WORLD_REP_CRELINKED_RESPAWN,
- WORLD_DEL_GAMEOBJECT_RESPAWN_TIMES,
WORLD_LOAD_CRETEXT,
WORLD_LOAD_SMART_SCRIPTS,
WORLD_LOAD_SMARTAI_WP,