diff options
author | Azazel <azazel.kon@gmail.com> | 2011-03-11 17:18:17 +0600 |
---|---|---|
committer | Azazel <azazel.kon@gmail.com> | 2011-03-11 17:18:17 +0600 |
commit | 3973d1b45444c0c8fcd7aa1e033be4329dce05ae (patch) | |
tree | 48a785ae8bbdaf7b49eaf6a832d0a0ea2f577014 | |
parent | 20b44e82d5a0ba86e1b8819e5d7cad4681ba36f5 (diff) |
CharDB Schema/Cleanup: cleanup channels table:
* rename columns (remove m_ prefix and convert to lowerCamel case);
* rename prepared statements to conform to standards (there is no CLEAN statement).
-rw-r--r-- | sql/base/characters_database.sql | 16 | ||||
-rw-r--r-- | sql/updates/auth_char/2011_03_11_0_characters_channels.sql | 7 | ||||
-rwxr-xr-x | src/server/game/Chat/Channels/Channel.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Chat/Commands/Level3.cpp | 10 | ||||
-rwxr-xr-x | src/server/shared/Database/Implementation/CharacterDatabase.cpp | 11 | ||||
-rwxr-xr-x | src/server/shared/Database/Implementation/CharacterDatabase.h | 3 |
6 files changed, 33 insertions, 18 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 9f7766dac4c..2640c894443 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -267,14 +267,14 @@ DROP TABLE IF EXISTS `channels`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `channels` ( - `m_name` varchar(128) NOT NULL, - `m_team` int(10) unsigned NOT NULL, - `m_announce` tinyint(3) unsigned NOT NULL DEFAULT '1', - `m_ownership` tinyint(3) unsigned NOT NULL DEFAULT '1', - `m_password` varchar(32) DEFAULT NULL, - `BannedList` text, - `last_used` int(10) unsigned NOT NULL, - PRIMARY KEY (`m_name`,`m_team`) + `name` varchar(128) NOT NULL, + `team` int(10) unsigned NOT NULL, + `announce` tinyint(3) unsigned NOT NULL DEFAULT '1', + `ownership` tinyint(3) unsigned NOT NULL DEFAULT '1', + `password` varchar(32) DEFAULT NULL, + `bannedList` text, + `lastUsed` int(10) unsigned NOT NULL, + PRIMARY KEY (`name`,`team`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Channel System'; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/sql/updates/auth_char/2011_03_11_0_characters_channels.sql b/sql/updates/auth_char/2011_03_11_0_characters_channels.sql new file mode 100644 index 00000000000..8c399617998 --- /dev/null +++ b/sql/updates/auth_char/2011_03_11_0_characters_channels.sql @@ -0,0 +1,7 @@ +ALTER TABLE `channels` CHANGE COLUMN `m_name` `name` varchar(128) NOT NULL, + CHANGE COLUMN `m_team` `team` int(10) unsigned NOT NULL, + CHANGE COLUMN `m_announce` `announce` tinyint(3) unsigned NOT NULL DEFAULT '1', + CHANGE COLUMN `m_ownership` `ownership` tinyint(3) unsigned NOT NULL DEFAULT '1', + CHANGE COLUMN `m_password` `password` varchar(32) DEFAULT NULL, + CHANGE COLUMN `BannedList` `bannedList` text, + CHANGE COLUMN `last_used` `lastUsed` int(10) unsigned NOT NULL; diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index 24fb18349ef..afe487b2c1b 100755 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -133,8 +133,8 @@ void Channel::CleanOldChannelsInDB() { if (sWorld->getIntConfig(CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION) > 0) { - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_CLEAN_CHANNEL); - stmt->setUInt32(0, sWorld->getIntConfig(CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION)*DAY); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_OLD_CHANNELS); + stmt->setUInt32(0, sWorld->getIntConfig(CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION) * DAY); CharacterDatabase.Execute(stmt); sLog->outDebug(LOG_FILTER_CHATSYS,"Cleaned out unused custom chat channels."); diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp index a50fae33b19..88e4e2912d2 100755 --- a/src/server/game/Chat/Commands/Level3.cpp +++ b/src/server/game/Chat/Commands/Level3.cpp @@ -4431,14 +4431,20 @@ bool ChatHandler::HandleChannelSetOwnership(const char *args) { if(chn) chn->SetOwnership(true); - CharacterDatabase.PExecute("UPDATE channels SET m_ownership = 1 WHERE m_name LIKE '%s'", channel); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SET_CHANNEL_OWNERSHIP); + stmt->setUInt8 (0, 1); + stmt->setString(1, channel); + CharacterDatabase.Execute(stmt); PSendSysMessage(LANG_CHANNEL_ENABLE_OWNERSHIP, channel); } else if (strcmp(argstr, "off") == 0) { if(chn) chn->SetOwnership(false); - CharacterDatabase.PExecute("UPDATE channels SET m_ownership = 0 WHERE m_name LIKE '%s'", channel); + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SET_CHANNEL_OWNERSHIP); + stmt->setUInt8 (0, 0); + stmt->setString(1, channel); + CharacterDatabase.Execute(stmt); PSendSysMessage(LANG_CHANNEL_DISABLE_OWNERSHIP, channel); } else diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index 44c186cdb82..98db2e51dfa 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -237,11 +237,12 @@ bool CharacterDatabaseConnection::Open() PREPARE_STATEMENT(CHAR_ADD_GO_RESPAWN_TIME, "REPLACE INTO gameobject_respawn VALUES (?, ?, ?)", CONNECTION_ASYNC) // Chat channel handling - PREPARE_STATEMENT(CHAR_LOAD_CHANNEL, "SELECT m_announce, m_ownership, m_password, BannedList FROM channels WHERE m_name = ? AND m_team = ?", CONNECTION_SYNCH) - PREPARE_STATEMENT(CHAR_ADD_CHANNEL, "INSERT INTO channels (m_name, m_team, last_used) VALUES (? , ?, UNIX_TIMESTAMP())", CONNECTION_ASYNC) - PREPARE_STATEMENT(CHAR_SET_CHANNEL, "UPDATE channels SET m_announce = ?, m_ownership = ?, m_password = ?, BannedList = ?, last_used = UNIX_TIMESTAMP() WHERE m_name = ? AND m_team = ?", CONNECTION_ASYNC) - PREPARE_STATEMENT(CHAR_SET_CHANNEL_USAGE, "UPDATE channels SET last_used = UNIX_TIMESTAMP() WHERE m_name = ? AND m_team = ?", CONNECTION_ASYNC) - PREPARE_STATEMENT(CHAR_CLEAN_CHANNEL, "DELETE FROM channels WHERE m_ownership = 1 AND (last_used + ?) < UNIX_TIMESTAMP()", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_LOAD_CHANNEL, "SELECT announce, ownership, password, bannedList FROM channels WHERE name = ? AND team = ?", CONNECTION_SYNCH) + PREPARE_STATEMENT(CHAR_ADD_CHANNEL, "INSERT INTO channels(name, team, lastUsed) VALUES (?, ?, UNIX_TIMESTAMP())", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_SET_CHANNEL, "UPDATE channels SET announce = ?, ownership = ?, password = ?, bannedList = ?, lastUsed = UNIX_TIMESTAMP() WHERE name = ? AND team = ?", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_SET_CHANNEL_USAGE, "UPDATE channels SET lastUsed = UNIX_TIMESTAMP() WHERE name = ? AND team = ?", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_SET_CHANNEL_OWNERSHIP, "UPDATE channels SET ownership = ? WHERE name LIKE ?", CONNECTION_ASYNC) + PREPARE_STATEMENT(CHAR_DEL_OLD_CHANNELS, "DELETE FROM channels WHERE ownership = 1 AND lastUsed + ? < UNIX_TIMESTAMP()", CONNECTION_ASYNC) // Equipmentsets PREPARE_STATEMENT(CHAR_SET_EQUIP_SET, "UPDATE character_equipmentsets SET name=?, iconname=?, item0=?, item1=?, item2=?, item3=?, item4=?, item5=?, item6=?, item7=?, item8=?, item9=?, item10=?, item11=?, item12=?, item13=?, item14=?, item15=?, item16=?, item17=?, item18=? WHERE guid=? AND setguid=? AND setindex=?", CONNECTION_ASYNC) diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index 951ea90b326..8fc1c9a38e9 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -202,7 +202,8 @@ enum CharacterDatabaseStatements CHAR_ADD_CHANNEL, CHAR_SET_CHANNEL, CHAR_SET_CHANNEL_USAGE, - CHAR_CLEAN_CHANNEL, + CHAR_SET_CHANNEL_OWNERSHIP, + CHAR_DEL_OLD_CHANNELS, CHAR_SET_EQUIP_SET, CHAR_ADD_EQUIP_SET, |