From abe4df5a89da8d8a53e240c4fcf11efb03a50d84 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Wed, 19 Jul 2017 14:41:21 +0200 Subject: [PATCH] Support UIDs up to 512 characters --- plugins/libkolab/SQL/mysql.initial.sql | 20 +-- plugins/libkolab/SQL/mysql/2017071900.sql | 9 ++ plugins/libkolab/SQL/oracle.initial.sql | 20 +-- plugins/libkolab/SQL/oracle/2017071900.sql | 9 ++ plugins/libkolab/SQL/sqlite.initial.sql | 20 +-- plugins/libkolab/SQL/sqlite/2017071900.sql | 146 +++++++++++++++++++++ 6 files changed, 194 insertions(+), 30 deletions(-) create mode 100644 plugins/libkolab/SQL/mysql/2017071900.sql create mode 100644 plugins/libkolab/SQL/oracle/2017071900.sql create mode 100644 plugins/libkolab/SQL/sqlite/2017071900.sql diff --git a/plugins/libkolab/SQL/mysql.initial.sql b/plugins/libkolab/SQL/mysql.initial.sql index a1497dae..4f4f5262 100644 --- a/plugins/libkolab/SQL/mysql.initial.sql +++ b/plugins/libkolab/SQL/mysql.initial.sql @@ -1,7 +1,7 @@ /** * libkolab database schema * - * @version 1.1 + * @version 1.2 * @author Thomas Bruederli * @licence GNU AGPL **/ @@ -29,7 +29,7 @@ DROP TABLE IF EXISTS `kolab_cache_contact`; CREATE TABLE `kolab_cache_contact` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -53,7 +53,7 @@ DROP TABLE IF EXISTS `kolab_cache_event`; CREATE TABLE `kolab_cache_event` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -73,7 +73,7 @@ DROP TABLE IF EXISTS `kolab_cache_task`; CREATE TABLE `kolab_cache_task` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -93,7 +93,7 @@ DROP TABLE IF EXISTS `kolab_cache_journal`; CREATE TABLE `kolab_cache_journal` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -113,7 +113,7 @@ DROP TABLE IF EXISTS `kolab_cache_note`; CREATE TABLE `kolab_cache_note` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -131,7 +131,7 @@ DROP TABLE IF EXISTS `kolab_cache_file`; CREATE TABLE `kolab_cache_file` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -151,7 +151,7 @@ DROP TABLE IF EXISTS `kolab_cache_configuration`; CREATE TABLE `kolab_cache_configuration` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -171,7 +171,7 @@ DROP TABLE IF EXISTS `kolab_cache_freebusy`; CREATE TABLE `kolab_cache_freebusy` ( `folder_id` BIGINT UNSIGNED NOT NULL, `msguid` BIGINT UNSIGNED NOT NULL, - `uid` VARCHAR(128) CHARACTER SET ascii NOT NULL, + `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL, `created` DATETIME DEFAULT NULL, `changed` DATETIME DEFAULT NULL, `data` LONGTEXT NOT NULL, @@ -188,4 +188,4 @@ CREATE TABLE `kolab_cache_freebusy` ( /*!40014 SET FOREIGN_KEY_CHECKS=1 */; -REPLACE INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2015020600'); +REPLACE INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2017071900'); diff --git a/plugins/libkolab/SQL/mysql/2017071900.sql b/plugins/libkolab/SQL/mysql/2017071900.sql new file mode 100644 index 00000000..b9ca6eb4 --- /dev/null +++ b/plugins/libkolab/SQL/mysql/2017071900.sql @@ -0,0 +1,9 @@ +-- make UID column bigger +ALTER TABLE `kolab_cache_contact` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_event` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_task` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_journal` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_note` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_file` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_configuration` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; +ALTER TABLE `kolab_cache_freebusy` MODIFY `uid` VARCHAR(512) CHARACTER SET ascii NOT NULL; diff --git a/plugins/libkolab/SQL/oracle.initial.sql b/plugins/libkolab/SQL/oracle.initial.sql index cf1fae54..77a16ee3 100644 --- a/plugins/libkolab/SQL/oracle.initial.sql +++ b/plugins/libkolab/SQL/oracle.initial.sql @@ -1,7 +1,7 @@ /** * libkolab database schema * - * @version 1.1 + * @version 1.2 * @author Aleksander Machniak * @licence GNU AGPL **/ @@ -33,7 +33,7 @@ CREATE TABLE "kolab_cache_contact" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -56,7 +56,7 @@ CREATE TABLE "kolab_cache_event" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -75,7 +75,7 @@ CREATE TABLE "kolab_cache_task" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -94,7 +94,7 @@ CREATE TABLE "kolab_cache_journal" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -113,7 +113,7 @@ CREATE TABLE "kolab_cache_note" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -130,7 +130,7 @@ CREATE TABLE "kolab_cache_file" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -149,7 +149,7 @@ CREATE TABLE "kolab_cache_configuration" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -168,7 +168,7 @@ CREATE TABLE "kolab_cache_freebusy" ( "folder_id" number NOT NULL REFERENCES "kolab_folders" ("folder_id") ON DELETE CASCADE, "msguid" number NOT NULL, - "uid" varchar(128) NOT NULL, + "uid" varchar(512) NOT NULL, "created" timestamp DEFAULT NULL, "changed" timestamp DEFAULT NULL, "data" clob NOT NULL, @@ -183,4 +183,4 @@ CREATE TABLE "kolab_cache_freebusy" ( CREATE INDEX "kolab_cache_fb_uid2msguid" ON "kolab_cache_freebusy" ("folder_id", "uid", "msguid"); -INSERT INTO "system" ("name", "value") VALUES ('libkolab-version', '2015020600'); +INSERT INTO "system" ("name", "value") VALUES ('libkolab-version', '2017071900'); diff --git a/plugins/libkolab/SQL/oracle/2017071900.sql b/plugins/libkolab/SQL/oracle/2017071900.sql new file mode 100644 index 00000000..fd562669 --- /dev/null +++ b/plugins/libkolab/SQL/oracle/2017071900.sql @@ -0,0 +1,9 @@ +-- make UID column bigger +ALTER TABLE "kolab_cache_contact" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_event" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_task" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_journal" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_note" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_file" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_configuration" MODIFY "uid" VARCHAR(512) NOT NULL; +ALTER TABLE "kolab_cache_freebusy" MODIFY "uid" VARCHAR(512) NOT NULL; diff --git a/plugins/libkolab/SQL/sqlite.initial.sql b/plugins/libkolab/SQL/sqlite.initial.sql index 6f6f3c9a..7a56636f 100644 --- a/plugins/libkolab/SQL/sqlite.initial.sql +++ b/plugins/libkolab/SQL/sqlite.initial.sql @@ -1,7 +1,7 @@ /** * libkolab database schema * - * @version 1.1 + * @version 1.2 * @author Thomas Bruederli * @licence GNU AGPL **/ @@ -21,7 +21,7 @@ CREATE INDEX ix_resource_type ON kolab_folders(resource, type); CREATE TABLE kolab_cache_contact ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -42,7 +42,7 @@ CREATE INDEX ix_contact_uid2msguid ON kolab_cache_contact(folder_id,uid,msguid); CREATE TABLE kolab_cache_event ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -59,7 +59,7 @@ CREATE INDEX ix_event_uid2msguid ON kolab_cache_event(folder_id,uid,msguid); CREATE TABLE kolab_cache_task ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -76,7 +76,7 @@ CREATE INDEX ix_task_uid2msguid ON kolab_cache_task(folder_id,uid,msguid); CREATE TABLE kolab_cache_journal ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -93,7 +93,7 @@ CREATE INDEX ix_journal_uid2msguid ON kolab_cache_journal(folder_id,uid,msguid); CREATE TABLE kolab_cache_note ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -108,7 +108,7 @@ CREATE INDEX ix_note_uid2msguid ON kolab_cache_note(folder_id,uid,msguid); CREATE TABLE kolab_cache_file ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -125,7 +125,7 @@ CREATE INDEX ix_file_uid2msguid ON kolab_cache_file(folder_id,uid,msguid); CREATE TABLE kolab_cache_configuration ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -142,7 +142,7 @@ CREATE INDEX ix_configuration_uid2msguid ON kolab_cache_configuration(folder_id, CREATE TABLE kolab_cache_freebusy ( folder_id INTEGER NOT NULL, msguid INTEGER NOT NULL, - uid VARCHAR(128) NOT NULL, + uid VARCHAR(512) NOT NULL, created DATETIME DEFAULT NULL, changed DATETIME DEFAULT NULL, data TEXT NOT NULL, @@ -156,4 +156,4 @@ CREATE TABLE kolab_cache_freebusy ( CREATE INDEX ix_freebusy_uid2msguid ON kolab_cache_freebusy(folder_id,uid,msguid); -INSERT INTO system (name, value) VALUES ('libkolab-version', '2015020600'); +INSERT INTO system (name, value) VALUES ('libkolab-version', '2017071900'); diff --git a/plugins/libkolab/SQL/sqlite/2017071900.sql b/plugins/libkolab/SQL/sqlite/2017071900.sql new file mode 100644 index 00000000..d1ee0c41 --- /dev/null +++ b/plugins/libkolab/SQL/sqlite/2017071900.sql @@ -0,0 +1,146 @@ +TRUNCATE kolab_folders; +DROP TABLE kolab_cache_contact; +CREATE TABLE kolab_cache_contact ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + type VARCHAR(32) NOT NULL, + name VARCHAR(255) NOT NULL, + firstname VARCHAR(255) NOT NULL, + surname VARCHAR(255) NOT NULL, + email VARCHAR(255) NOT NULL, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_contact_type ON kolab_cache_contact(folder_id,type); +CREATE INDEX ix_contact_uid2msguid ON kolab_cache_contact(folder_id,uid,msguid); + +DROP TABLE kolab_cache_event; +CREATE TABLE kolab_cache_event ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + dtstart DATETIME, + dtend DATETIME, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_event_uid2msguid ON kolab_cache_event(folder_id,uid,msguid); + +DROP TABLE kolab_cache_task; +CREATE TABLE kolab_cache_task ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + dtstart DATETIME, + dtend DATETIME, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_task_uid2msguid ON kolab_cache_task(folder_id,uid,msguid); + +DROP TABLE kolab_cache_journal; +CREATE TABLE kolab_cache_journal ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + dtstart DATETIME, + dtend DATETIME, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_journal_uid2msguid ON kolab_cache_journal(folder_id,uid,msguid); + +DROP TABLE kolab_cache_note; +CREATE TABLE kolab_cache_note ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_note_uid2msguid ON kolab_cache_note(folder_id,uid,msguid); + +DROP TABLE kolab_cache_file; +CREATE TABLE kolab_cache_file ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + filename varchar(255) DEFAULT NULL, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_folder_filename ON kolab_cache_file(folder_id,filename); +CREATE INDEX ix_file_uid2msguid ON kolab_cache_file(folder_id,uid,msguid); + +DROP TABLE kolab_cache_configuration; +CREATE TABLE kolab_cache_configuration ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + type VARCHAR(32) NOT NULL, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_configuration_type ON kolab_cache_configuration(folder_id,type); +CREATE INDEX ix_configuration_uid2msguid ON kolab_cache_configuration(folder_id,uid,msguid); + +DROP TABLE kolab_cache_freebusy; +CREATE TABLE kolab_cache_freebusy ( + folder_id INTEGER NOT NULL, + msguid INTEGER NOT NULL, + uid VARCHAR(512) NOT NULL, + created DATETIME DEFAULT NULL, + changed DATETIME DEFAULT NULL, + data TEXT NOT NULL, + xml TEXT NOT NULL, + tags TEXT NOT NULL, + words TEXT NOT NULL, + dtstart DATETIME, + dtend DATETIME, + PRIMARY KEY(folder_id,msguid) +); + +CREATE INDEX ix_freebusy_uid2msguid ON kolab_cache_freebusy(folder_id,uid,msguid);