diff -N --exclude=*.pgsql -u tools.orig/db-setup.mysql tools/db-setup.mysql --- tools.orig/db-setup.mysql Sat Dec 4 20:23:29 2004 +++ tools/db-setup.mysql Sat Dec 4 21:44:04 2004 @@ -12,8 +12,8 @@ -- c2s authentication/registration table -- CREATE TABLE `authreg` ( - `username` TINYTEXT, - `realm` TINYTEXT, + `username` TEXT, KEY `username` (`username`(255)), + `realm` TINYTEXT, KEY `realm` (`realm`(255)), `password` TINYTEXT, `token` VARCHAR(10), `sequence` INT, @@ -28,7 +28,7 @@ -- Used by: core -- CREATE TABLE `active` ( - `collection-owner` TEXT NOT NULL, PRIMARY KEY(`collection-owner`(255)), + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `time` INT ); @@ -37,7 +37,7 @@ -- Used by: mod_iq_last -- CREATE TABLE `logout` ( - `collection-owner` TEXT NOT NULL, PRIMARY KEY(`collection-owner`(255)), + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `time` INT ); @@ -46,7 +46,7 @@ -- Used by: mod_roster -- CREATE TABLE `roster-items` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `jid` TEXT, `name` TEXT, @@ -59,7 +59,7 @@ -- Used by: mod_roster -- CREATE TABLE `roster-groups` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `jid` TEXT, `group` TEXT ); @@ -69,7 +69,7 @@ -- Used by: mod_iq_vcard -- CREATE TABLE `vcard` ( - `collection-owner` TEXT NOT NULL, PRIMARY KEY(`collection-owner`(255)), + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `fn` TEXT, `nickname` TEXT, @@ -96,26 +96,26 @@ -- Used by: mod_offline -- CREATE TABLE `queue` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), - `xml` TEXT ); + `xml` MEDIUMTEXT ); -- -- Private XML storage -- Used by: mod_iq_private -- CREATE TABLE `private` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `ns` TEXT, - `xml` TEXT ); + `xml` MEDIUMTEXT ); -- -- Message Of The Day (MOTD) messages (announcements) -- Used by: mod_announce -- CREATE TABLE `motd-message` ( - `collection-owner` TEXT NOT NULL, PRIMARY KEY(`collection-owner`(255)), + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `xml` TEXT ); @@ -124,7 +124,7 @@ -- Used by: mod_announce -- CREATE TABLE `motd-times` ( - `collection-owner` TEXT NOT NULL, PRIMARY KEY(`collection-owner`(255)), + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `time` INT ); @@ -133,7 +133,7 @@ -- Used by: mod_disco_publish -- CREATE TABLE `disco-items` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `jid` TEXT, `name` TEXT, @@ -144,7 +144,7 @@ -- Used by: mod_privacy -- CREATE TABLE `privacy-default` ( - `collection-owner` TEXT NOT NULL, PRIMARY KEY(`collection-owner`(255)), + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `default` text ); @@ -153,7 +153,7 @@ -- Used by: mod_privacy -- CREATE TABLE `privacy-items` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `list` TEXT, `type` TEXT, @@ -167,7 +167,7 @@ -- Used by: mod_vacation -- CREATE TABLE `vacation-settings` ( - `collection-owner` TEXT NOT NULL, + `collection-owner` TEXT NOT NULL, KEY(`collection-owner`(255)), `object-sequence` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequence`), `start` INT, `end` INT, diff -N --exclude=*.pgsql -u tools.orig/db-update.mysql tools/db-update.mysql --- tools.orig/db-update.mysql Thu Jan 1 02:00:00 1970 +++ tools/db-update.mysql Sat Dec 4 21:45:38 2004 @@ -0,0 +1,55 @@ +-- +-- This updates and creates indexes for jabberd2 mysql databases created prior to 2.0s6. +-- Run this using the mysql interactive terminal: +-- +-- mysql> \. db-update.mysql +-- + +USE jabberd2; + +-- Change the primary keys on collection-owner to normal indexes so as not to +-- enforce uniqueness on the first 255 chars of otherwise different JIDs + +ALTER TABLE `active` DROP PRIMARY KEY; +ALTER TABLE `active` ADD INDEX ( `collection-owner` ( 255 ) ); + +ALTER TABLE `logout` DROP PRIMARY KEY; +ALTER TABLE `logout` ADD INDEX ( `collection-owner` ( 255 ) ); + +ALTER TABLE `vcard` DROP PRIMARY KEY; +ALTER TABLE `vcard` ADD INDEX ( `collection-owner` ( 255 ) ); + +ALTER TABLE `motd-message` DROP PRIMARY KEY; +ALTER TABLE `motd-message` ADD INDEX ( `collection-owner` ( 255 ) ); + +ALTER TABLE `motd-times` DROP PRIMARY KEY; +ALTER TABLE `motd-times` ADD INDEX ( `collection-owner` ( 255 ) ); + +ALTER TABLE `privacy-default` DROP PRIMARY KEY; +ALTER TABLE `privacy-default` ADD INDEX ( `collection-owner` ( 255 ) ); + +-- Add indexes on collection-owner for tables that should have them + +ALTER TABLE `disco-items` ADD INDEX ( `collection-owner` ( 255 ) ); +ALTER TABLE `roster-items` ADD INDEX ( `collection-owner` ( 255 ) ); +ALTER TABLE `roster-groups` ADD INDEX ( `collection-owner` ( 255 ) ); +ALTER TABLE `privacy-items` ADD INDEX ( `collection-owner` ( 255 ) ); +ALTER TABLE `private` ADD INDEX ( `collection-owner` ( 255 ) ); +ALTER TABLE `queue` ADD INDEX ( `collection-owner` ( 255 ) ); +ALTER TABLE `vacation-settings` ADD INDEX ( `collection-owner` ( 255 ) ); + +-- Add indexes on username and realm for authreg + +ALTER TABLE `authreg` ADD INDEX ( `username` ( 255 ) ); +ALTER TABLE `authreg` ADD INDEX ( `realm` ( 255 ) ); + +-- Change the field type of xml in queue and private to allow storage > 64K +-- (MEDIUMTEXT will allow up to 16M) + +ALTER TABLE `queue` CHANGE `xml` `xml` MEDIUMTEXT DEFAULT NULL; +ALTER TABLE `private` CHANGE `xml` `xml` MEDIUMTEXT DEFAULT NULL; + +-- Remove 256-char limit on username in authreg table + +ALTER TABLE `authreg` CHANGE `username` `username` TEXT DEFAULT NULL; +