From ace511a771656c983046919333cee501339c98a1 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Wed, 06 Oct 2010 09:00:12 -0400 Subject: [PATCH] - Add unique index on users.username+users.mail_host --- CHANGELOG | 1 + SQL/sqlite.update.sql | 6 ++++++ SQL/postgres.update.sql | 8 +++++++- SQL/mysql.update.sql | 6 ++++++ SQL/postgres.initial.sql | 10 +++++----- SQL/mysql.initial.sql | 2 +- SQL/sqlite.initial.sql | 2 +- SQL/mssql.initial.sql | 2 +- SQL/mssql.upgrade.sql | 7 +++++++ 9 files changed, 35 insertions(+), 9 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a0b0f36..0b7c850 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -18,6 +18,7 @@ - Fix confirmation message isn't displayed after sending mail on Chrome (#1486177) - Fix keyboard doesn't work with autocomplete list with Chrome (#1487029) - Improve tabs to fixed width and add tabs in identities info (#1486974) +- Add unique index on users.username+users.mail_host RELEASE 0.4.2 ------------- diff --git a/SQL/mssql.initial.sql b/SQL/mssql.initial.sql index 553e68a..6b031a2 100644 --- a/SQL/mssql.initial.sql +++ b/SQL/mssql.initial.sql @@ -255,7 +255,7 @@ CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created] GO -CREATE INDEX [IX_users_username] ON [dbo].[users]([username]) ON [PRIMARY] +CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY] GO CREATE INDEX [IX_users_alias] ON [dbo].[users]([alias]) ON [PRIMARY] diff --git a/SQL/mssql.upgrade.sql b/SQL/mssql.upgrade.sql index 1aa771b..6b3cd6d 100644 --- a/SQL/mssql.upgrade.sql +++ b/SQL/mssql.upgrade.sql @@ -87,3 +87,10 @@ ON DELETE CASCADE ON UPDATE CASCADE GO +-- Updates from version 0.4.2 + +DROP INDEX [IX_users_username] +GO +CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY] +GO + diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql index fdab115..456a483 100644 --- a/SQL/mysql.initial.sql +++ b/SQL/mysql.initial.sql @@ -28,7 +28,7 @@ `language` varchar(5), `preferences` text, PRIMARY KEY(`user_id`), - INDEX `username_index` (`username`), + UNIQUE `username` (`username`, `mail_host`), INDEX `alias_index` (`alias`) ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; diff --git a/SQL/mysql.update.sql b/SQL/mysql.update.sql index 28ebf6f..b9ab59e 100644 --- a/SQL/mysql.update.sql +++ b/SQL/mysql.update.sql @@ -123,3 +123,9 @@ ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL; UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00'; + +-- Updates from version 0.4.2 + +ALTER TABLE `users` DROP INDEX `username_index`; +ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`); + diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql index ac59efb..84a9afd 100644 --- a/SQL/postgres.initial.sql +++ b/SQL/postgres.initial.sql @@ -24,10 +24,10 @@ created timestamp with time zone DEFAULT now() NOT NULL, last_login timestamp with time zone DEFAULT NULL, "language" varchar(5), - preferences text DEFAULT ''::text NOT NULL + preferences text DEFAULT ''::text NOT NULL, + UNIQUE (username, mail_host) ); -CREATE INDEX users_username_id_idx ON users (username); CREATE INDEX users_alias_id_idx ON users (alias); @@ -146,7 +146,7 @@ -- Table "contactgroupmembers" -- Name: contactgroupmembers; Type: TABLE; Schema: public; Owner: postgres -- - + CREATE TABLE contactgroupmembers ( contactgroup_id integer NOT NULL REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE, @@ -216,9 +216,9 @@ date timestamp with time zone NOT NULL, size integer DEFAULT 0 NOT NULL, headers text NOT NULL, - structure text + structure text, + UNIQUE (user_id, cache_key, uid) ); -ALTER TABLE messages ADD UNIQUE (user_id, cache_key, uid); CREATE INDEX messages_index_idx ON messages (user_id, cache_key, idx); CREATE INDEX messages_created_idx ON messages (created); diff --git a/SQL/postgres.update.sql b/SQL/postgres.update.sql index 1ef93d8..99b9c0e 100644 --- a/SQL/postgres.update.sql +++ b/SQL/postgres.update.sql @@ -56,7 +56,7 @@ NO MAXVALUE NO MINVALUE CACHE 1; - + CREATE TABLE contactgroups ( contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY, user_id integer NOT NULL @@ -81,3 +81,9 @@ ALTER TABLE users ALTER last_login DROP NOT NULL; ALTER TABLE users ALTER last_login SET DEFAULT NULL; + +-- Updates from version 0.4.2 + +DROP INDEX users_username_id_idx; +ALTER TABLE users ADD UNIQUE (username, mail_host); + diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index e7faeed..ea7650c 100644 --- a/SQL/sqlite.initial.sql +++ b/SQL/sqlite.initial.sql @@ -97,7 +97,7 @@ preferences text NOT NULL default '' ); -CREATE INDEX ix_users_username ON users(username); +CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host); CREATE INDEX ix_users_alias ON users(alias); -- -------------------------------------------------------- diff --git a/SQL/sqlite.update.sql b/SQL/sqlite.update.sql index 2db7821..78e283e 100644 --- a/SQL/sqlite.update.sql +++ b/SQL/sqlite.update.sql @@ -140,3 +140,9 @@ CREATE INDEX ix_users_username ON users(username); CREATE INDEX ix_users_alias ON users(alias); DROP TABLE tmp_users; + +-- Updates from version 0.4.2 + +DROP INDEX ix_users_username; +CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host); + -- Gitblit v1.9.1