aboutsummaryrefslogtreecommitdiff
path: root/sql/updates/characters
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-10-02 21:28:11 +0200
committerShauren <shauren.trinity@gmail.com>2021-10-02 21:28:11 +0200
commit11762273c68b24b332238aa89a73b9ed9ac1d249 (patch)
treeadff35fd1a30acb4b1985d0996c172a3cf743dc8 /sql/updates/characters
parent1440586be841fef21af03a602d8e198a4ab4193a (diff)
Core/Players: Store player creation timestamp and type (normal/npe)
Diffstat (limited to 'sql/updates/characters')
-rw-r--r--sql/updates/characters/master/2021_10_02_00_characters.sql12
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/updates/characters/master/2021_10_02_00_characters.sql b/sql/updates/characters/master/2021_10_02_00_characters.sql
new file mode 100644
index 00000000000..e6e6285b72f
--- /dev/null
+++ b/sql/updates/characters/master/2021_10_02_00_characters.sql
@@ -0,0 +1,12 @@
+ALTER TABLE `characters`
+ ADD `createTime` bigint(20) NOT NULL DEFAULT '0' AFTER `online`,
+ ADD `createMode` tinyint(4) NOT NULL DEFAULT '0' AFTER `createTime`;
+
+ -- AT_LOGIN_FIRST: Characters that have never logged in have accurate creation timestamp in `logout_time`
+UPDATE `characters` SET `createTime`=`logout_time` WHERE (`at_login` & 0x20) != 0;
+ -- attempt to find lowest criteria timestamp for characters that have logged in already
+UPDATE `characters` SET `createTime`=(SELECT COALESCE(MIN(candidates.`date`), UNIX_TIMESTAMP()) FROM (
+SELECT MIN(cap.`date`) `date` FROM `character_achievement_progress` cap WHERE cap.`guid`=`characters`.`guid`
+UNION
+SELECT MIN(ca.`date`) `date` FROM `character_achievement` ca WHERE ca.`guid`=`characters`.`guid`
+) candidates) WHERE (`at_login` & 0x20) = 0;