From 6cb7786912ab18e53d8de0bbe436e46bf6d61782 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 03 Apr 2008 07:03:54 -0400
Subject: [PATCH] #1484854
---
SQL/mysql5.initial.sql | 4 +++-
SQL/sqlite.update.sql | 2 ++
SQL/postgres.update.sql | 17 ++++++++++++++++-
SQL/mysql.update.sql | 4 ++++
SQL/postgres.initial.sql | 13 ++++++++-----
SQL/mysql.initial.sql | 4 +++-
SQL/sqlite.initial.sql | 2 ++
7 files changed, 38 insertions(+), 8 deletions(-)
diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql
index ae195e4..019675e 100644
--- a/SQL/mysql.initial.sql
+++ b/SQL/mysql.initial.sql
@@ -91,7 +91,9 @@
`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 7023078..07b1817 100644
--- a/SQL/mysql.update.sql
+++ b/SQL/mysql.update.sql
@@ -11,3 +11,7 @@
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 58e220f..881344b 100644
--- a/SQL/mysql5.initial.sql
+++ b/SQL/mysql5.initial.sql
@@ -29,7 +29,9 @@
`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 c742836..05c6192 100644
--- a/SQL/postgres.initial.sql
+++ b/SQL/postgres.initial.sql
@@ -25,6 +25,8 @@
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 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 @@
html_signature integer DEFAULT 0 NOT NULL
);
+CREATE INDEX identities_user_id_idx ON identities (user_id);
--
@@ -94,7 +97,7 @@
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 @@
vcard text
);
-
+CREATE INDEX contacts_user_id_idx ON contacts (user_id);
--
-- Sequence "cache_ids"
@@ -124,7 +127,7 @@
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 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 add454a..e0afa61 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 a1eaeb8..6adcf4d 100644
--- a/SQL/sqlite.initial.sql
+++ b/SQL/sqlite.initial.sql
@@ -80,6 +80,8 @@
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 ed0ad20..047fe67 100644
--- a/SQL/sqlite.update.sql
+++ b/SQL/sqlite.update.sql
@@ -23,3 +23,5 @@
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);
--
Gitblit v1.9.1