summaryrefslogtreecommitdiff
path: root/roundcubemail/SQL/postgres.update.sql
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-27 07:40:43 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-27 07:40:43 +0000
commitd744542c2ce7223e57918e7cb4892c917bec5d3c (patch)
treef618be8a156accea15bcb3ec280b2d1528967bdc /roundcubemail/SQL/postgres.update.sql
parent66dd8ed403b7199e41c224807995742335e8b49a (diff)
- contactgroups DDL for postgres
git-svn-id: https://svn.roundcube.net/trunk@3431 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/SQL/postgres.update.sql')
-rw-r--r--roundcubemail/SQL/postgres.update.sql26
1 files changed, 26 insertions, 0 deletions
diff --git a/roundcubemail/SQL/postgres.update.sql b/roundcubemail/SQL/postgres.update.sql
index 0b926d5e1..ec7ce9b62 100644
--- a/roundcubemail/SQL/postgres.update.sql
+++ b/roundcubemail/SQL/postgres.update.sql
@@ -48,3 +48,29 @@ CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);
DROP INDEX identities_user_id_idx;
CREATE INDEX identities_user_id_idx ON identities (user_id, del);
+
+CREATE SEQUENCE contactgroups_ids
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+CREATE TABLE contactgroups (
+ contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
+ 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 smallint NOT NULL DEFAULT 0,
+ name varchar(128) NOT NULL DEFAULT ''
+);
+
+CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
+
+CREATE TABLE contactgroupmembers (
+ contactgroup_id integer NOT NULL
+ REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ contact_id integer NOT NULL
+ REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
+ created timestamp with time zone DEFAULT now() NOT NULL,
+ PRIMARY KEY (contactgroup_id, contact_id)
+);