diff options
Diffstat (limited to 'SQL')
-rw-r--r-- | SQL/mysql.initial.sql | 4 | ||||
-rw-r--r-- | SQL/mysql.update.sql | 4 | ||||
-rw-r--r-- | SQL/mysql5.initial.sql | 4 | ||||
-rw-r--r-- | SQL/postgres.initial.sql | 13 | ||||
-rw-r--r-- | SQL/postgres.update.sql | 17 | ||||
-rw-r--r-- | SQL/sqlite.initial.sql | 2 | ||||
-rw-r--r-- | SQL/sqlite.update.sql | 2 |
7 files changed, 38 insertions, 8 deletions
diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql index ae195e438..019675ec4 100644 --- a/SQL/mysql.initial.sql +++ b/SQL/mysql.initial.sql @@ -91,7 +91,9 @@ CREATE TABLE `users` ( `last_login` datetime NOT NULL default '0000-00-00 00:00:00', `language` varchar(5) NOT NULL default 'en', `preferences` text, - PRIMARY KEY (`user_id`) + PRIMARY KEY (`user_id`), + INDEX `username_index` (`username`), + INDEX `alias_index` (`alias`) ); -- -------------------------------------------------------- diff --git a/SQL/mysql.update.sql b/SQL/mysql.update.sql index 70230784b..07b18174b 100644 --- a/SQL/mysql.update.sql +++ b/SQL/mysql.update.sql @@ -11,3 +11,7 @@ ALTER TABLE `cache` DROP INDEX `cache_key`, DROP INDEX `session_id`, ADD INDEX `user_cache_index` (`user_id`,`cache_key`); + +ALTER TABLE `users` + ADD INDEX `username_index` (`username`); + ADD INDEX `alias_index` (`alias`); diff --git a/SQL/mysql5.initial.sql b/SQL/mysql5.initial.sql index 58e220f7d..881344b98 100644 --- a/SQL/mysql5.initial.sql +++ b/SQL/mysql5.initial.sql @@ -29,7 +29,9 @@ CREATE TABLE `users` ( `last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `language` varchar(5) NOT NULL DEFAULT 'en', `preferences` text, - PRIMARY KEY(`user_id`) + PRIMARY KEY(`user_id`), + INDEX `username_index` (`username`), + INDEX `alias_index` (`alias`) ) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci; diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql index c7428369f..05c61924a 100644 --- a/SQL/postgres.initial.sql +++ b/SQL/postgres.initial.sql @@ -25,6 +25,8 @@ CREATE TABLE users ( preferences text DEFAULT ''::text NOT NULL ); +CREATE INDEX users_username_id_idx ON users (username); +CREATE INDEX users_alias_id_idx ON users (alias); -- @@ -61,7 +63,7 @@ CREATE SEQUENCE identity_ids CREATE TABLE identities ( identity_id integer DEFAULT nextval('identity_ids'::text) PRIMARY KEY, - user_id integer NOT NULL REFERENCES users (user_id), + user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE, del integer DEFAULT 0 NOT NULL, standard integer DEFAULT 0 NOT NULL, name character varying(128) NOT NULL, @@ -73,6 +75,7 @@ CREATE TABLE identities ( html_signature integer DEFAULT 0 NOT NULL ); +CREATE INDEX identities_user_id_idx ON identities (user_id); -- @@ -94,7 +97,7 @@ CREATE SEQUENCE contact_ids CREATE TABLE contacts ( contact_id integer DEFAULT nextval('contact_ids'::text) PRIMARY KEY, - user_id integer NOT NULL REFERENCES users (user_id), + user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE, changed timestamp with time zone DEFAULT now() NOT NULL, del integer DEFAULT 0 NOT NULL, name character varying(128) DEFAULT ''::character varying NOT NULL, @@ -104,7 +107,7 @@ CREATE TABLE contacts ( vcard text ); - +CREATE INDEX contacts_user_id_idx ON contacts (user_id); -- -- Sequence "cache_ids" @@ -124,7 +127,7 @@ CREATE SEQUENCE cache_ids CREATE TABLE "cache" ( cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY, - user_id integer NOT NULL REFERENCES users (user_id), + user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE, session_id character varying(40) REFERENCES "session" (sess_id), cache_key character varying(128) DEFAULT ''::character varying NOT NULL, created timestamp with time zone DEFAULT now() NOT NULL, @@ -151,7 +154,7 @@ CREATE SEQUENCE message_ids CREATE TABLE "messages" ( message_id integer DEFAULT nextval('message_ids'::text) PRIMARY KEY, - user_id integer NOT NULL REFERENCES users (user_id), + user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE, del integer DEFAULT 0 NOT NULL, cache_key character varying(128) DEFAULT ''::character varying NOT NULL, created timestamp with time zone DEFAULT now() NOT NULL, diff --git a/SQL/postgres.update.sql b/SQL/postgres.update.sql index add454ab8..e0afa61ca 100644 --- a/SQL/postgres.update.sql +++ b/SQL/postgres.update.sql @@ -1,4 +1,19 @@ -- RoundCube Webmail update script for Postgres databases -- Updates from version 0.1-stable to 0.1.1 -ALTER TABLE "cache" ADD INDEX (user_id, cache_key); +CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key); +CREATE INDEX contacts_user_id_idx ON contacts (user_id); +CREATE INDEX identities_user_id_idx ON identities (user_id); + +CREATE INDEX users_username_id_idx ON users (username); +CREATE INDEX users_alias_id_idx ON users (alias); + +-- added ON DELETE/UPDATE actions +ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey; +ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey; +ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey; +ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey; +ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index a1eaeb8be..6adcf4dff 100644 --- a/SQL/sqlite.initial.sql +++ b/SQL/sqlite.initial.sql @@ -80,6 +80,8 @@ CREATE TABLE users ( preferences text NOT NULL default '' ); +CREATE INDEX ix_users_username ON users(username); +CREATE INDEX ix_users_alias ON users(alias); -- -------------------------------------------------------- diff --git a/SQL/sqlite.update.sql b/SQL/sqlite.update.sql index ed0ad2012..047fe6731 100644 --- a/SQL/sqlite.update.sql +++ b/SQL/sqlite.update.sql @@ -23,3 +23,5 @@ CREATE TABLE messages ( CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid); +CREATE INDEX ix_users_username ON users(username); +CREATE INDEX ix_users_alias ON users(alias); |