Guest User

Untitled

a guest
Aug 12th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 9.84 KB | None | 0 0
  1. USE characters;
  2.  
  3. -- CHARACTERS TRANSFER QUERIES
  4. INSERT INTO account_data SELECT * FROM ptr_characters.account_data;
  5. -- addons -- TC specific table, will be filled by TC
  6. INSERT INTO arena_team SELECT * FROM ptr_characters.arena_team;
  7. INSERT INTO arena_team_member (arenateamid, guid, played_week, wons_week, played_season, wons_season) SELECT arenateamid, guid, played_week, wons_week, played_season, wons_season FROM ptr_characters.arena_team_member;
  8. INSERT INTO arena_team_stats SELECT * FROM ptr_characters.arena_team_stats;
  9. INSERT INTO character_account_data SELECT * FROM ptr_characters.character_account_data;
  10. INSERT INTO character_achievement SELECT * FROM ptr_characters.character_achievement;
  11. INSERT INTO character_achievement_progress SELECT * FROM ptr_characters.character_achievement_progress;
  12. INSERT INTO character_action SELECT * FROM ptr_characters.character_action;
  13. -- character_aura -- this table is filled with buffs and similar spells, it can be dropped
  14. INSERT INTO character_battleground_data SELECT * FROM ptr_characters.character_battleground_data;
  15. INSERT INTO character_declinedname SELECT * FROM ptr_characters.character_declinedname;
  16. INSERT INTO character_equipmentsets SELECT * FROM ptr_characters.character_equipmentsets;
  17. INSERT INTO character_gifts SELECT * FROM ptr_characters.character_gifts;
  18. INSERT INTO character_glyphs (guid, spec) SELECT  DISTINCT guid, spec FROM ptr_characters.character_glyphs;
  19. UPDATE character_glyphs a SET glyph1 = (SELECT glyph FROM ptr_characters.character_glyphs WHERE guid = a.guid AND spec  = a.spec AND slot = 0);
  20. UPDATE character_glyphs a SET glyph2 = (SELECT glyph FROM ptr_characters.character_glyphs WHERE guid = a.guid AND spec  = a.spec AND slot = 1);
  21. UPDATE character_glyphs a SET glyph3 = (SELECT glyph FROM ptr_characters.character_glyphs WHERE guid = a.guid AND spec  = a.spec AND slot = 2);
  22. UPDATE character_glyphs a SET glyph4 = (SELECT glyph FROM ptr_characters.character_glyphs WHERE guid = a.guid AND spec  = a.spec AND slot = 3);
  23. UPDATE character_glyphs a SET glyph5 = (SELECT glyph FROM ptr_characters.character_glyphs WHERE guid = a.guid AND spec  = a.spec AND slot = 4);
  24. UPDATE character_glyphs a SET glyph6 = (SELECT glyph FROM ptr_characters.character_glyphs WHERE guid = a.guid AND spec  = a.spec AND slot = 5);
  25. INSERT INTO character_homebind SELECT * FROM ptr_characters.character_homebind;
  26. INSERT INTO character_instance SELECT * FROM ptr_characters.character_instance;
  27. INSERT INTO character_inventory SELECT * FROM ptr_characters.character_inventory;
  28. INSERT INTO character_pet SELECT * FROM ptr_characters.character_pet;
  29. INSERT INTO character_pet_declinedname SELECT * FROM ptr_characters.character_pet_declinedname;
  30. INSERT INTO character_queststatus SELECT * FROM ptr_characters.character_queststatus;
  31. INSERT INTO character_queststatus_daily (guid,quest) SELECT * FROM ptr_characters.character_queststatus_daily; -- ?
  32. INSERT INTO character_queststatus_weekly SELECT * FROM ptr_characters.character_queststatus_weekly;
  33. INSERT INTO character_reputation SELECT * FROM ptr_characters.character_reputation;
  34. INSERT INTO character_skills SELECT * FROM ptr_characters.character_skills;
  35. INSERT INTO character_social SELECT * FROM ptr_characters.character_social;
  36. INSERT INTO character_spell SELECT * FROM ptr_characters.character_spell;
  37. INSERT INTO character_spell_cooldown SELECT * FROM ptr_characters.character_spell_cooldown;
  38. INSERT INTO character_stats SELECT * FROM ptr_characters.character_stats;
  39. -- character_talent -- talents will be reseted, sry
  40. -- character_ticket -- tickets will differ alot, new table is now gm_ticket
  41. INSERT INTO character_tutorial SELECT * FROM ptr_characters.character_tutorial;
  42.  
  43. -- corpse -- skip
  44. -- group_instance -- skip
  45. -- group_member -- skip
  46. -- group -- skip
  47. INSERT INTO guild SELECT * FROM ptr_characters.guild;
  48. INSERT INTO guild_bank_eventlog SELECT * FROM ptr_characters.guild_bank_eventlog;
  49. INSERT INTO guild_bank_item SELECT * FROM ptr_characters.guild_bank_item;
  50. INSERT INTO guild_bank_right SELECT * FROM ptr_characters.guild_bank_right;
  51. INSERT INTO guild_bank_tab SELECT * FROM ptr_characters.guild_bank_tab;
  52. INSERT INTO guild_eventlog SELECT * FROM ptr_characters.guild_eventlog;
  53. INSERT INTO guild_member SELECT * FROM ptr_characters.guild_member;
  54. INSERT INTO guild_rank SELECT * FROM ptr_characters.guild_rank;
  55. INSERT INTO instance SELECT * FROM ptr_characters.instance;
  56. INSERT INTO instance_reset SELECT * FROM ptr_characters.instance_reset;
  57.  
  58. ALTER TABLE `item_instance`
  59.  ADD `data` longtext;
  60.  
  61. INSERT INTO item_instance (guid, owner_guid, charges, enchantments) SELECT  DISTINCT guid, owner_guid, data, data FROM ptr_characters.item_instance;
  62. UPDATE item_instance a SET `data` = (SELECT data FROM ptr_characters.item_instance WHERE guid = a.guid AND owner_guid = a.owner_guid);
  63. -- Temporarily change delimiter to prevent SQL syntax errors
  64. DELIMITER ||
  65.  
  66. -- Function to convert ints from unsigned to signed
  67. DROP FUNCTION IF EXISTS `uint32toint32`||
  68. CREATE FUNCTION `uint32toint32`(input INT(10) UNSIGNED) RETURNS INT(11) SIGNED DETERMINISTIC
  69. BEGIN
  70.   RETURN input;
  71. END||
  72.  
  73. -- Restore original delimiter
  74. DELIMITER ;
  75.  
  76. -- Move data to new fields
  77. UPDATE `item_instance` SET
  78. `creatorGuid` = SUBSTRING(`data`,
  79. LENGTH(SUBSTRING_INDEX(`data`,' ',10))+2,
  80. LENGTH(SUBSTRING_INDEX(`data`,' ',10+1))-LENGTH(SUBSTRING_INDEX(data,' ',10))-1),
  81.  
  82. `giftCreatorGuid` = SUBSTRING(`data`,
  83. LENGTH(SUBSTRING_INDEX(`data`,' ',12))+2,
  84. LENGTH(SUBSTRING_INDEX(`data`,' ',12+1))-LENGTH(SUBSTRING_INDEX(data,' ',12))-1),
  85.  
  86. `COUNT` = SUBSTRING(`data`,
  87. LENGTH(SUBSTRING_INDEX(`data`,' ',14))+2,
  88. LENGTH(SUBSTRING_INDEX(`data`,' ',14+1))-LENGTH(SUBSTRING_INDEX(data,' ',14))-1),
  89.  
  90. `duration` = SUBSTRING(`data`,
  91. LENGTH(SUBSTRING_INDEX(`data`,' ',15))+2,
  92. LENGTH(SUBSTRING_INDEX(`data`,' ',15+1))-LENGTH(SUBSTRING_INDEX(data,' ',15))-1),
  93.  
  94. `charges` = CONCAT_WS(' ',
  95. uint32toint32(SUBSTRING(`data`,
  96. LENGTH(SUBSTRING_INDEX(`data`,' ',16))+2,
  97. LENGTH(SUBSTRING_INDEX(`data`,' ',16+1))-LENGTH(SUBSTRING_INDEX(data,' ',16))-1)),
  98. uint32toint32(SUBSTRING(`data`,
  99. LENGTH(SUBSTRING_INDEX(`data`,' ',17))+2,
  100. LENGTH(SUBSTRING_INDEX(`data`,' ',17+1))-LENGTH(SUBSTRING_INDEX(data,' ',17))-1)),
  101. uint32toint32(SUBSTRING(`data`,
  102. LENGTH(SUBSTRING_INDEX(`data`,' ',18))+2,
  103. LENGTH(SUBSTRING_INDEX(`data`,' ',18+1))-LENGTH(SUBSTRING_INDEX(data,' ',18))-1)),
  104. uint32toint32(SUBSTRING(`data`,
  105. LENGTH(SUBSTRING_INDEX(`data`,' ',19))+2,
  106. LENGTH(SUBSTRING_INDEX(`data`,' ',19+1))-LENGTH(SUBSTRING_INDEX(data,' ',19))-1)),
  107. uint32toint32(SUBSTRING(`data`,
  108. LENGTH(SUBSTRING_INDEX(`data`,' ',20))+2,
  109. LENGTH(SUBSTRING_INDEX(`data`,' ',20+1))-LENGTH(SUBSTRING_INDEX(data,' ',20))-1))),
  110.  
  111. `flags` = SUBSTRING(`data`,
  112. LENGTH(SUBSTRING_INDEX(`data`,' ',21))+2,
  113. LENGTH(SUBSTRING_INDEX(`data`,' ',21+1))-LENGTH(SUBSTRING_INDEX(data,' ',21))-1),
  114.  
  115. `enchantments` = SUBSTRING(`data`,
  116. LENGTH(SUBSTRING_INDEX(`data`,' ',22))+2,
  117. LENGTH(SUBSTRING_INDEX(`data`,' ',57+1))-LENGTH(SUBSTRING_INDEX(data,' ',22))-1),
  118.  
  119. `randomPropertyId` = uint32toint32(SUBSTRING(`data`,
  120. LENGTH(SUBSTRING_INDEX(`data`,' ',59))+2,
  121. LENGTH(SUBSTRING_INDEX(`data`,' ',59+1))-LENGTH(SUBSTRING_INDEX(data,' ',59))-1)),
  122.  
  123. `durability` = SUBSTRING(`data`,
  124. LENGTH(SUBSTRING_INDEX(`data`,' ',60))+2,
  125. LENGTH(SUBSTRING_INDEX(`data`,' ',60+1))-LENGTH(SUBSTRING_INDEX(data,' ',60))-1),
  126.  
  127. `playedTime` = SUBSTRING(`data`,
  128. LENGTH(SUBSTRING_INDEX(`data`,' ',62))+2,
  129. LENGTH(SUBSTRING_INDEX(`data`,' ',62+1))-LENGTH(SUBSTRING_INDEX(data,' ',62))-1);
  130.  
  131. -- Drop function
  132. DROP FUNCTION IF EXISTS `uint32toint32`;
  133.  
  134. -- Fix heroic item flag
  135. UPDATE `item_instance` SET `flags`=`flags`&~0x8 WHERE
  136. SUBSTRING(`data`,
  137. LENGTH(SUBSTRING_INDEX(`data`,' ',3))+2,
  138. LENGTH(SUBSTRING_INDEX(`data`,' ',3+1))-LENGTH(SUBSTRING_INDEX(data,' ',3))-1)
  139. NOT IN (5043,5044,17302,17305,17308,21831);
  140.  
  141. SET @allowedFlags := 0x00000001 | 0x00000008 | 0x00000200 | 0x00001000 | 0x00008000 | 0x00010000;
  142.  
  143. UPDATE `item_instance` SET `flags` = (`flags` & @allowedFlags);
  144.  
  145. -- Drop old field
  146. ALTER TABLE `item_instance` DROP `data`;
  147.  
  148. INSERT INTO mail SELECT * FROM ptr_characters.mail;
  149. INSERT INTO mail_items SELECT * FROM ptr_characters.mail_items;
  150. -- pet_aura -- skip
  151. INSERT INTO pet_spell SELECT * FROM ptr_characters.pet_spell;
  152. INSERT INTO pet_spell_cooldown SELECT * FROM ptr_characters.pet_spell_cooldown;
  153. INSERT INTO petition SELECT * FROM ptr_characters.petition;
  154. INSERT INTO petition_sign SELECT * FROM ptr_characters.petition_sign;
  155. INSERT INTO characters (guid, account, name, race, class, gender, LEVEL, xp, money, playerBytes, playerBytes2, playerFlags, position_x, position_y, position_z, map, orientation, taximask, online, cinematic, totaltime, leveltime, logout_time, is_logout_resting, rest_bonus, resettalents_cost, resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, ZONE, death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars) SELECT guid, account, name, race, class, gender, LEVEL, xp, money, playerBytes, playerBytes2, playerFlags, position_x, position_y, position_z, map, orientation, taximask, online, cinematic, totaltime, leveltime, logout_time, is_logout_resting, rest_bonus, resettalents_cost, resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, ZONE, death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars FROM ptr_characters.characters;
Add Comment
Please, Sign In to add comment