PREPARE_STATEMENT(CHAR_DEL_NONEXISTENT_GUILD_BANK_ITEM,"DELETE FROM guild_bank_item WHERE guildid = ? AND TabId = ? AND SlotId = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_DEL_EXPIRED_BANS,"UPDATE character_banned SET active = 0 WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate <> bandate",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_DEL_CHARACTER_BAN,"DELETE cb FROM character_banned cb INNER JOIN characters c ON c.guid = cb.guid WHERE c.account = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_BANINFO,"SELECT FROM_UNIXTIME(bandate), unbandate-bandate, active, unbandate, banreason, bannedby FROM character_banned WHERE guid = ? ORDER BY bandate ASC",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_BANINFO_LIST,"SELECT bandate, unbandate, bannedby, banreason FROM character_banned WHERE guid = ? ORDER BY unbandate",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_BANNED_NAME,"SELECT characters.name FROM characters, character_banned WHERE character_banned.guid = ? AND character_banned.guid = characters.guid",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_ENUM,"SELECT c.guid, c.name, c.race, c.class, c.gender, c.playerBytes, c.playerBytes2, c.level, c.zone, c.map, c.position_x, c.position_y, c.position_z, gm.guildid, c.playerFlags, c.at_login, cp.entry, cp.modelid, cp.level, c.equipmentCache, cb.guid FROM characters AS c LEFT JOIN character_pet AS cp ON c.guid = cp.owner AND cp.slot = ? LEFT JOIN guild_member AS gm ON c.guid = gm.guid LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? ORDER BY c.guid",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_ENUM_DECLINED_NAME,"SELECT c.guid, c.name, c.race, c.class, c.gender, c.playerBytes, c.playerBytes2, c.level, c.zone, c.map, c.position_x, c.position_y, c.position_z, gm.guildid, c.playerFlags, c.at_login, cp.entry, cp.modelid, cp.level, c.equipmentCache, cb.guid, cd.genitive FROM characters AS c LEFT JOIN character_pet AS cp ON c.guid = cp.owner AND cp.slot = ? LEFT JOIN character_declinedname AS cd ON c.guid = cd.guid LEFT JOIN guild_member AS gm ON c.guid = gm.guid LEFT JOIN character_banned AS cb ON c.guid = cb.guid AND cb.active = 1 WHERE c.account = ? ORDER BY c.guid",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_PET_SLOTS,"SELECT owner, slot FROM character_pet WHERE owner = ? AND slot >= ? AND slot <= ? ORDER BY slot",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_PET_SLOTS_DETAIL,"SELECT owner, id, entry, level, name FROM character_pet WHERE owner = ? AND slot >= ? AND slot <= ? ORDER BY slot",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_PET_ENTRY,"SELECT entry FROM character_pet WHERE owner = ? AND id = ? AND slot >= ? AND slot <= ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_PET_SLOT_BY_ID,"SELECT slot, entry FROM character_pet WHERE owner = ? AND id = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_FREE_NAME,"SELECT guid, name FROM characters WHERE guid = ? AND account = ? AND (at_login & ?) = ? AND NOT EXISTS (SELECT NULL FROM characters WHERE name = ?)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_INSTANCE,"SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_ACTIONS,"SELECT a.button, a.action, a.type FROM character_action as a, characters as c WHERE a.guid = c.guid AND a.spec = c.activespec AND a.guid = ? ORDER BY button",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_MAILCOUNT,"SELECT COUNT(id) FROM mail WHERE receiver = ? AND (checked & 1) = 0 AND deliver_time <= ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_MAILDATE,"SELECT MIN(deliver_time) FROM mail WHERE receiver = ? AND (checked & 1) = 0",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_SOCIALLIST,"SELECT friend, flags, note FROM character_social JOIN characters ON characters.guid = character_social.friend WHERE character_social.guid = ? AND deleteinfos_name IS NULL LIMIT 255",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_HOMEBIND,"SELECT mapId, zoneId, posX, posY, posZ FROM character_homebind WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_SPELLCOOLDOWNS,"SELECT spell, item, time FROM character_spell_cooldown WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_DECLINEDNAMES,"SELECT genitive, dative, accusative, instrumental, prepositional FROM character_declinedname WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_ACHIEVEMENTS,"SELECT achievement, date FROM character_achievement WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_CRITERIAPROGRESS,"SELECT criteria, counter, date FROM character_achievement_progress WHERE guid = ?",CONNECTION_ASYNC)
"item9, item10, item11, item12, item13, item14, item15, item16, item17, item18 FROM character_equipmentsets WHERE guid = ? ORDER BY setindex",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_BGDATA,"SELECT instanceId, team, joinX, joinY, joinZ, joinO, joinMapId, taxiStart, taxiEnd, mountSpell FROM character_battleground_data WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_GLYPHS,"SELECT spec, glyph1, glyph2, glyph3, glyph4, glyph5, glyph6 FROM character_glyphs WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_TALENTS,"SELECT spell, spec FROM character_talent WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_SKILLS,"SELECT skill, value, max FROM character_skills WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_RANDOMBG,"SELECT guid FROM character_battleground_random WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_BANNED,"SELECT guid FROM character_banned WHERE guid = ? AND active = 1",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_QUESTSTATUSREW,"SELECT quest FROM character_queststatus_rewarded WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_ACCOUNT_INSTANCELOCKTIMES,"SELECT instanceId, releaseTime FROM account_instance_times WHERE accountId = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_ACTIONS_SPEC,"SELECT button, action, type FROM character_action WHERE guid = ? AND spec = ? ORDER BY button",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_MAILITEMS,"SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, item_guid, itemEntry, owner_guid FROM mail_items mi JOIN item_instance ii ON mi.item_guid = ii.guid WHERE mail_id = ?",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_AUCTION_ITEMS,"SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, itemguid, itemEntry FROM auctionhouse ah JOIN item_instance ii ON ah.itemguid = ii.guid",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_EXPIRED_MAIL,"SELECT id, messageType, sender, receiver, has_items, expire_time, cod, checked, mailTemplateId FROM mail WHERE expire_time < ?",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_SEL_EXPIRED_MAIL_ITEMS,"SELECT item_guid, itemEntry, mail_id FROM mail_items mi INNER JOIN item_instance ii ON ii.guid = mi.item_guid LEFT JOIN mail mm ON mi.mail_id = mm.id WHERE mm.id IS NOT NULL AND mm.expire_time < ?",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_UPD_MAIL_RETURNED,"UPDATE mail SET sender = ?, receiver = ?, expire_time = ?, deliver_time = ?, cod = 0, checked = ? WHERE id = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_UPD_MAIL_ITEM_RECEIVER,"UPDATE mail_items SET receiver = ? WHERE item_guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_UPD_ITEM_OWNER,"UPDATE item_instance SET owner_guid = ? WHERE guid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_DEL_GUILD_BANK_RIGHTS,"DELETE FROM guild_bank_right WHERE guildid = ?",CONNECTION_ASYNC)// 0: uint32
PREPARE_STATEMENT(CHAR_DEL_GUILD_BANK_RIGHTS_FOR_RANK,"DELETE FROM guild_bank_right WHERE guildid = ? AND rid = ?",CONNECTION_ASYNC)// 0: uint32, 1: uint8
PREPARE_STATEMENT(CHAR_UPD_GUILD_MEMBER_PNOTE,"UPDATE guild_member SET pnote = ? WHERE guid = ?",CONNECTION_ASYNC)// 0: string, 1: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_MEMBER_OFFNOTE,"UPDATE guild_member SET offnote = ? WHERE guid = ?",CONNECTION_ASYNC)// 0: string, 1: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_MEMBER_RANK,"UPDATE guild_member SET rank = ? WHERE guid = ?",CONNECTION_ASYNC)// 0: uint8, 1: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_MOTD,"UPDATE guild SET motd = ? WHERE guildid = ?",CONNECTION_ASYNC)// 0: string, 1: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_INFO,"UPDATE guild SET info = ? WHERE guildid = ?",CONNECTION_ASYNC)// 0: string, 1: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_LEADER,"UPDATE guild SET leaderguid = ? WHERE guildid = ?",CONNECTION_ASYNC)// 0: uint32, 1: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_RANK_NAME,"UPDATE guild_rank SET rname = ? WHERE rid = ? AND guildid = ?",CONNECTION_ASYNC)// 0: string, 1: uint8, 2: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_RANK_RIGHTS,"UPDATE guild_rank SET rights = ? WHERE rid = ? AND guildid = ?",CONNECTION_ASYNC)// 0: uint32, 1: uint8, 2: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_BANK_EVENTLOG_TAB,"UPDATE guild_bank_eventlog SET TabId = ? WHERE guildid = ? AND TabId = ? AND LogGuid = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_UPD_GUILD_RANK_BANK_MONEY,"UPDATE guild_rank SET BankMoneyPerDay = ? WHERE rid = ? AND guildid = ?",CONNECTION_ASYNC)// 0: uint32, 1: uint8, 2: uint32
PREPARE_STATEMENT(CHAR_UPD_GUILD_BANK_TAB_TEXT,"UPDATE guild_bank_tab SET TabText = ? WHERE guildid = ? AND TabId = ?",CONNECTION_ASYNC)// 0: string, 1: uint32, 2: uint8
PREPARE_STATEMENT(CHAR_DEL_ALL_GAME_EVENT_CONDITION_SAVE,"DELETE FROM game_event_condition_save WHERE eventEntry = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_DEL_GAME_EVENT_CONDITION_SAVE,"DELETE FROM game_event_condition_save WHERE eventEntry = ? AND condition_id = ?",CONNECTION_ASYNC)
PREPARE_STATEMENT(CHAR_SEL_PETITION_BY_OWNER,"SELECT petitionguid FROM petition WHERE ownerguid = ? AND type = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PETITION_TYPE,"SELECT type FROM petition WHERE petitionguid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PETITION_SIGNATURES,"SELECT ownerguid, (SELECT COUNT(playerguid) FROM petition_sign WHERE petition_sign.petitionguid = ?) AS signs, type FROM petition WHERE petitionguid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PETITION_SIG_BY_ACCOUNT,"SELECT playerguid FROM petition_sign WHERE player_account = ? AND petitionguid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PETITION_OWNER_BY_GUID,"SELECT ownerguid FROM petition WHERE petitionguid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PETITION_SIG_BY_GUID,"SELECT ownerguid, petitionguid FROM petition_sign WHERE playerguid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PETITION_SIG_BY_GUID_TYPE,"SELECT ownerguid, petitionguid FROM petition_sign WHERE playerguid = ? AND type = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_UPD_ARENA_TEAM_MEMBER,"UPDATE arena_team_member SET personalRating = ?, weekGames = ?, weekWins = ?, seasonGames = ?, seasonWins = ? WHERE arenaTeamId = ? AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_REP_CHARACTER_ARENA_STATS,"REPLACE INTO character_arena_stats (guid, slot, matchMakerRating) VALUES (?, ?, ?)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_PLAYER_ARENA_TEAMS,"SELECT arena_team_member.arenaTeamId FROM arena_team_member JOIN arena_team ON arena_team_member.arenaTeamId = arena_team.arenaTeamId WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_MAX_CREATURE_RESPAWNS,"SELECT MAX(respawnTime), instanceId FROM creature_respawn WHERE instanceId > 0 GROUP BY instanceId",CONNECTION_SYNCH)
PREPARE_STATEMENT(CHAR_UPD_CHARACTER,"UPDATE characters SET name=?,race=?,class=?,gender=?,level=?,xp=?,money=?,playerBytes=?,playerBytes2=?,playerFlags=?,"
PREPARE_STATEMENT(CHAR_DEL_GROUP_MEMBER,"DELETE FROM group_member WHERE memberGuid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_GROUP_INSTANCE_PERM_BINDING,"DELETE FROM group_instance WHERE guid = ? AND (permanent = 1 OR instance IN (SELECT instance FROM character_instance WHERE guid = ?))",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UDP_RESTORE_DELETE_INFO,"UPDATE characters SET name = ?, account = ?, deleteDate = NULL, deleteInfos_Name = NULL, deleteInfos_Account = NULL WHERE deleteDate IS NOT NULL AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_AURA_FROZEN,"SELECT characters.name FROM characters LEFT JOIN character_aura ON (characters.guid = character_aura.guid) WHERE character_aura.spell = 9454",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_ONLINE,"SELECT name, account, map, zone FROM characters WHERE online > 0",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_DEL_INFO_BY_GUID,"SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_DEL_INFO_BY_NAME,"SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%')",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_DEL_INFO,"SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHARS_BY_ACCOUNT_ID,"SELECT guid FROM characters WHERE account = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_PINFO,"SELECT totaltime, level, money, account, race, class, map, zone FROM characters WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PINFO_BANS,"SELECT unbandate, bandate = unbandate, bannedby, banreason FROM character_banned WHERE guid = ? AND active ORDER BY bandate ASC LIMIT 1",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_HOMEBIND,"SELECT mapId, zoneId, posX, posY, posZ FROM character_homebind WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_GUID_NAME_BY_ACC,"SELECT guid, name FROM characters WHERE account = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_POOL_QUEST_SAVE,"SELECT quest_id FROM pool_quest_save WHERE pool_id = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHARACTER_AT_LOGIN,"SELECT at_login FROM characters WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_INSTANCE,"SELECT data, completedEncounters FROM instance WHERE map = ? AND id = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PET_SPELL_LIST,"SELECT DISTINCT pet_spell.spell FROM pet_spell, character_pet WHERE character_pet.owner = ? AND character_pet.id = pet_spell.guid AND character_pet.id <> ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_PET,"SELECT id FROM character_pet WHERE owner = ? AND id <> ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_PETS,"SELECT id FROM character_pet WHERE owner = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_COD_ITEM_MAIL,"SELECT id, messageType, mailTemplateId, sender, subject, body, money, has_items FROM mail WHERE receiver = ? AND has_items <> 0 AND cod <> 0",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_SOCIAL,"SELECT DISTINCT guid FROM character_social WHERE friend = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_OLD_CHARS,"SELECT guid, deleteInfos_Account FROM characters WHERE deleteDate IS NOT NULL AND deleteDate < ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_ARENA_TEAM_ID_BY_PLAYER_GUID,"SELECT arena_team_member.arenateamid FROM arena_team_member JOIN arena_team ON arena_team_member.arenateamid = arena_team.arenateamid WHERE guid = ? AND type = ? LIMIT 1",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_MAIL,"SELECT id, messageType, sender, receiver, subject, body, has_items, expire_time, deliver_time, money, cod, checked, stationery, mailTemplateId FROM mail WHERE receiver = ? ORDER BY id DESC",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_PLAYERBYTES2,"SELECT playerBytes2 FROM characters WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PET_SPELL,"SELECT spell, active FROM pet_spell WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PET_SPELL_COOLDOWN,"SELECT spell, time FROM pet_spell_cooldown WHERE guid = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_PET_DECLINED_NAME,"SELECT genitive, dative, accusative, instrumental, prepositional FROM character_pet_declinedname WHERE owner = ? AND id = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_INVENTORY_COUNT_ITEM,"SELECT COUNT(itemEntry) FROM character_inventory ci INNER JOIN item_instance ii ON ii.guid = ci.item WHERE itemEntry = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_MAIL_COUNT_ITEM,"SELECT COUNT(itemEntry) FROM mail_items mi INNER JOIN item_instance ii ON ii.guid = mi.item_guid WHERE itemEntry = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_AUCTIONHOUSE_COUNT_ITEM,"SELECT COUNT(itemEntry) FROM auctionhouse ah INNER JOIN item_instance ii ON ii.guid = ah.itemguid WHERE itemEntry = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_GUILD_BANK_COUNT_ITEM,"SELECT COUNT(itemEntry) FROM guild_bank_item gbi INNER JOIN item_instance ii ON ii.guid = gbi.item_guid WHERE itemEntry = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_INVENTORY_ITEM_BY_ENTRY,"SELECT ci.item, cb.slot AS bag, ci.slot, ci.guid, c.account, c.name FROM characters c INNER JOIN character_inventory ci ON ci.guid = c.guid INNER JOIN item_instance ii ON ii.guid = ci.item LEFT JOIN character_inventory cb ON cb.item = ci.bag WHERE ii.itemEntry = ? LIMIT ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_MAIL_ITEMS_BY_ENTRY,"SELECT mi.item_guid, m.sender, m.receiver, cs.account, cs.name, cr.account, cr.name FROM mail m INNER JOIN mail_items mi ON mi.mail_id = m.id INNER JOIN item_instance ii ON ii.guid = mi.item_guid INNER JOIN characters cs ON cs.guid = m.sender INNER JOIN characters cr ON cr.guid = m.receiver WHERE ii.itemEntry = ? LIMIT ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_AUCTIONHOUSE_ITEM_BY_ENTRY,"SELECT ah.itemguid, ah.itemowner, c.account, c.name FROM auctionhouse ah INNER JOIN characters c ON c.guid = ah.itemowner INNER JOIN item_instance ii ON ii.guid = ah.itemguid WHERE ii.itemEntry = ? LIMIT ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_GUILD_BANK_ITEM_BY_ENTRY,"SELECT gi.item_guid, gi.guildid, g.name FROM guild_bank_item gi INNER JOIN guild g ON g.guildid = gi.guildid INNER JOIN item_instance ii ON ii.guid = gi.item_guid WHERE ii.itemEntry = ? LIMIT ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_SEL_CHAR_PET_BY_ENTRY,"SELECT id, entry, owner, modelid, level, exp, Reactstate, slot, name, renamed, curhealth, curmana, curhappiness, abdata, savetime, CreatedBySpell, PetType FROM character_pet WHERE owner = ? AND id = ?",CONNECTION_SYNCH);
PREPARE_STATEMENT(CHAR_DEL_INSTANCE_BY_INSTANCE,"DELETE FROM instance WHERE id = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_INSTANCE_BY_INSTANCE,"DELETE FROM character_instance WHERE instance = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_INSTANCE_BY_MAP_DIFF,"DELETE FROM character_instance USING character_instance LEFT JOIN instance ON character_instance.instance = id WHERE map = ? and difficulty = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_GROUP_INSTANCE_BY_MAP_DIFF,"DELETE FROM group_instance USING group_instance LEFT JOIN instance ON group_instance.instance = id WHERE map = ? and difficulty = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_INSTANCE_BY_MAP_DIFF,"DELETE FROM instance WHERE map = ? and difficulty = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_MAIL_ITEM_BY_ID,"DELETE FROM mail_items WHERE mail_id = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UDP_CHAR_PET_SLOT_BY_SLOT_EXCLUDE_ID,"UPDATE character_pet SET slot = ? WHERE owner = ? AND slot = ? AND id <> ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UDP_CHAR_PET_SLOT_BY_SLOT,"UPDATE character_pet SET slot = ? WHERE owner = ? AND slot = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_PET_SLOT_BY_ID,"UPDATE character_pet SET slot = ? WHERE owner = ? AND id = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_BY_ID,"DELETE FROM character_pet WHERE id = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_BY_SLOT,"DELETE FROM character_pet WHERE owner = ? AND (slot = ? OR slot > ?)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_PET_AURAS,"DELETE FROM pet_aura WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_PET_SPELLS,"DELETE FROM pet_spell WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_PET_SPELL_COOLDOWNS,"DELETE FROM pet_spell_cooldown WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_INS_PET_SPELL_COOLDOWN,"INSERT INTO pet_spell_cooldown (guid, spell, time) VALUES (?, ?, ?)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_PET_SPELL_BY_SPELL,"DELETE FROM pet_spell WHERE guid = ? and spell = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_INS_PET_SPELL,"INSERT INTO pet_spell (guid, spell, active) VALUES (?, ?, ?)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_FACTION_OR_RACE,"UPDATE characters SET name = ?, race = ?, at_login = at_login & ~ ? WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SKILL_LANGUAGES,"DELETE FROM character_skills WHERE skill IN (98, 113, 759, 111, 313, 109, 115, 315, 673, 137) AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_TAXI_PATH,"UPDATE characters SET taxi_path = '' WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_TAXIMASK,"UPDATE characters SET taximask = ? WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_QUESTSTATUS,"DELETE FROM character_queststatus WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SOCIAL_BY_GUID,"DELETE FROM character_social WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SOCIAL_BY_FRIEND,"DELETE FROM character_social WHERE friend = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_ACHIEVEMENT_BY_ACHIEVEMENT,"DELETE FROM character_achievement WHERE achievement = ? AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_ACHIEVEMENT,"UPDATE character_achievement SET achievement = ? where achievement = ? AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_INVENTORY_FACTION_CHANGE,"UPDATE item_instance ii, character_inventory ci SET ii.itemEntry = ? WHERE ii.itemEntry = ? AND ci.guid = ? AND ci.item = ii.guid",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SPELL_BY_SPELL,"DELETE FROM character_spell WHERE spell = ? AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_SPELL_FACTION_CHANGE,"UPDATE character_spell SET spell = ? where spell = ? AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_QUESTSTATUS_REWARDED,"DELETE FROM character_queststatus_rewarded WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_REPUTATION,"DELETE FROM character_reputation WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SPELL,"DELETE FROM character_spell WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_MAIL,"DELETE FROM mail WHERE receiver = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_MAIL_ITEMS,"DELETE FROM mail_items WHERE receiver = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_BY_OWNER,"DELETE FROM character_pet WHERE owner = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_PET_DECLINEDNAME_BY_OWNER,"DELETE FROM character_pet_declinedname WHERE owner = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_ACHIEVEMENTS,"DELETE FROM character_achievement WHERE guid = ? AND achievement NOT BETWEEN '456' AND '467' AND achievement NOT BETWEEN '1400' AND '1427' AND achievement NOT IN(1463, 3117, 3259)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_EQUIPMENTSETS,"DELETE FROM character_equipmentsets WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_GUILD_EVENTLOG_BY_PLAYER,"DELETE FROM guild_eventlog WHERE PlayerGuid1 = ? OR PlayerGuid2 = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_GUILD_BANK_EVENTLOG_BY_PLAYER,"DELETE FROM guild_bank_eventlog WHERE PlayerGuid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_GLYPHS,"DELETE FROM character_glyphs WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_QUESTSTATUS_DAILY,"DELETE FROM character_queststatus_daily WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_TALENT,"DELETE FROM character_talent WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SKILLS,"DELETE FROM character_skills WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UDP_CHAR_HONOR_POINTS,"UPDATE characters SET totalHonorPoints = ? WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UDP_CHAR_ARENA_POINTS,"UPDATE characters SET arenaPoints = ? WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UDP_CHAR_MONEY,"UPDATE characters SET money = ? WHERE guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_CHAR_ACTION,"UPDATE character_action SET action = ?, type = ? WHERE guid = ? AND button = ? AND spec = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_ACTION_BY_BUTTON_SPEC,"DELETE FROM character_action WHERE guid = ? and button = ? and spec = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_INVENTORY_BY_ITEM,"DELETE FROM character_inventory WHERE item = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_INVENTORY_BY_BAG_SLOT,"DELETE FROM character_inventory WHERE bag = ? AND slot = ? AND guid = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_UPD_MAIL,"UPDATE mail SET has_items = ?, expire_time = ?, deliver_time = ?, money = ?, cod = ?, checked = ? WHERE id = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_QUESTSTATUS_BY_QUEST,"DELETE FROM character_queststatus WHERE guid = ? AND quest = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_INS_CHAR_QUESTSTATUS,"INSERT IGNORE INTO character_queststatus_rewarded (guid, quest) VALUES (?, ?)",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_QUESTSTATUS_REWARDED_BY_QUEST,"DELETE FROM character_queststatus_rewarded WHERE guid = ? AND quest = ?",CONNECTION_ASYNC);
PREPARE_STATEMENT(CHAR_DEL_CHAR_SKILL_BY_SKILL,"DELETE FROM character_skills WHERE guid = ? AND skill = ?",CONNECTION_ASYNC);