From e508b828b77d89c66b2c233feb8b5a737b9f76c1 Mon Sep 17 00:00:00 2001 From: "natakilar@gmail.com" Date: Wed, 29 Nov 2023 16:11:34 -0500 Subject: [PATCH] Fixes PID Collisions --- mods/persistence/code/__defines/persistent_id.dm | 3 ++- sql/V100__Persistence.sql | 16 ++++++++-------- sql/migrate/V100__Persistence.sql | 16 ++++++++-------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/mods/persistence/code/__defines/persistent_id.dm b/mods/persistence/code/__defines/persistent_id.dm index 8420f52a812..76ac21dd72c 100644 --- a/mods/persistence/code/__defines/persistent_id.dm +++ b/mods/persistence/code/__defines/persistent_id.dm @@ -1 +1,2 @@ -#define PERSISTENT_ID uniqueness_repository.Generate(/datum/uniqueness_generator/hex) \ No newline at end of file +// Does not use the uniqueness repository to eliminate unnecessary overhead +#define PERSISTENT_ID "[RANDBYTE]-[RANDBYTE]-[RANDBYTE]-[RANDBYTE]-[RANDBYTE]-[RANDBYTE]" \ No newline at end of file diff --git a/sql/V100__Persistence.sql b/sql/V100__Persistence.sql index 37805a8dd85..3229fdd8691 100644 --- a/sql/V100__Persistence.sql +++ b/sql/V100__Persistence.sql @@ -25,7 +25,7 @@ CREATE TABLE IF NOT EXISTS `list_element` ( -- Dumping structure for table persistent.thing DROP TABLE IF EXISTS `thing`; CREATE TABLE IF NOT EXISTS `thing` ( - `p_id` varchar(12) NOT NULL, + `p_id` varchar(18) NOT NULL, `type` varchar(256) NOT NULL, `x` int DEFAULT NULL, `y` int DEFAULT NULL, @@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS `thing` ( DROP TABLE IF EXISTS `thing_var`; CREATE TABLE IF NOT EXISTS `thing_var` ( `id` int NOT NULL AUTO_INCREMENT, - `thing_id` varchar(12) NOT NULL, + `thing_id` varchar(18) NOT NULL, `key` varchar(256) NOT NULL, `type` varchar(256) NOT NULL, `value` longtext NOT NULL, @@ -76,7 +76,7 @@ CREATE TABLE IF NOT EXISTS `limbo` ( `type` varchar(64) NOT NULL, `p_ids` longtext NOT NULL, `metadata` varchar(64) DEFAULT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, `metadata2` varchar(64) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; @@ -88,7 +88,7 @@ CREATE TABLE IF NOT EXISTS `limbo_list_element` ( `key_type` varchar(256) NOT NULL, `value` longtext NOT NULL, `value_type` varchar(256) NOT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -96,12 +96,12 @@ CREATE TABLE IF NOT EXISTS `limbo_list_element` ( -- Dumping structure for table persistent.thing DROP TABLE IF EXISTS `limbo_thing`; CREATE TABLE IF NOT EXISTS `limbo_thing` ( - `p_id` varchar(12) NOT NULL, + `p_id` varchar(18) NOT NULL, `type` varchar(256) NOT NULL, `x` int DEFAULT NULL, `y` int DEFAULT NULL, `z` int DEFAULT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, PRIMARY KEY (`p_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -110,11 +110,11 @@ CREATE TABLE IF NOT EXISTS `limbo_thing` ( DROP TABLE IF EXISTS `limbo_thing_var`; CREATE TABLE IF NOT EXISTS `limbo_thing_var` ( `id` int NOT NULL AUTO_INCREMENT, - `thing_id` varchar(12) NOT NULL, + `thing_id` varchar(18) NOT NULL, `key` varchar(256) NOT NULL, `type` varchar(256) NOT NULL, `value` longtext NOT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Data exporting was unselected. diff --git a/sql/migrate/V100__Persistence.sql b/sql/migrate/V100__Persistence.sql index 08ecf33a4b7..fb2af8222f3 100644 --- a/sql/migrate/V100__Persistence.sql +++ b/sql/migrate/V100__Persistence.sql @@ -20,7 +20,7 @@ CREATE TABLE IF NOT EXISTS `list_element` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `thing` ( - `p_id` varchar(12) NOT NULL, + `p_id` varchar(18) NOT NULL, `type` varchar(256) NOT NULL, `x` int DEFAULT NULL, `y` int DEFAULT NULL, @@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS `thing` ( CREATE TABLE IF NOT EXISTS `thing_var` ( `id` int NOT NULL AUTO_INCREMENT, - `thing_id` varchar(12) NOT NULL, + `thing_id` varchar(18) NOT NULL, `key` varchar(256) NOT NULL, `type` varchar(256) NOT NULL, `value` longtext NOT NULL, @@ -63,7 +63,7 @@ CREATE TABLE IF NOT EXISTS `limbo` ( `type` varchar(64) NOT NULL, `p_ids` longtext NOT NULL, `metadata` varchar(64) DEFAULT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, `metadata2` varchar(64) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; @@ -74,26 +74,26 @@ CREATE TABLE IF NOT EXISTS `limbo_list_element` ( `key_type` varchar(256) NOT NULL, `value` longtext NOT NULL, `value_type` varchar(256) NOT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `limbo_thing` ( - `p_id` varchar(12) NOT NULL, + `p_id` varchar(18) NOT NULL, `type` varchar(256) NOT NULL, `x` int DEFAULT NULL, `y` int DEFAULT NULL, `z` int DEFAULT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, PRIMARY KEY (`p_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `limbo_thing_var` ( `id` int NOT NULL AUTO_INCREMENT, - `thing_id` varchar(12) NOT NULL, + `thing_id` varchar(18) NOT NULL, `key` varchar(256) NOT NULL, `type` varchar(256) NOT NULL, `value` longtext NOT NULL, - `limbo_assoc` varchar(12) NOT NULL, + `limbo_assoc` varchar(18) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;