From 774f9dc8350b2a4e41213e16e0a30560e2d41ff1 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 17 Dec 2013 05:05:53 -0500
Subject: [PATCH] Fix replacing group name with group members on autocompletion (for some addressbook plugins where email field is not a flat array)

---
 SQL/postgres.initial.sql |  123 ++++++++++++++++++++++------------------
 1 files changed, 67 insertions(+), 56 deletions(-)

diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql
index a1864c6..f18cb6a 100644
--- a/SQL/postgres.initial.sql
+++ b/SQL/postgres.initial.sql
@@ -1,11 +1,11 @@
 -- Roundcube Webmail initial database structure
 
 --
--- Sequence "user_ids"
--- Name: user_ids; Type: SEQUENCE; Schema: public; Owner: postgres
+-- Sequence "users_seq"
+-- Name: users_seq; Type: SEQUENCE; Schema: public; Owner: postgres
 --
 
-CREATE SEQUENCE user_ids
+CREATE SEQUENCE users_seq
     INCREMENT BY 1
     NO MAXVALUE
     NO MINVALUE
@@ -17,10 +17,9 @@
 --
 
 CREATE TABLE users (
-    user_id integer DEFAULT nextval('user_ids'::text) PRIMARY KEY,
+    user_id integer DEFAULT nextval('users_seq'::text) PRIMARY KEY,
     username varchar(128) DEFAULT '' NOT NULL,
     mail_host varchar(128) DEFAULT '' NOT NULL,
-    alias varchar(128) DEFAULT '' NOT NULL,
     created timestamp with time zone DEFAULT now() NOT NULL,
     last_login timestamp with time zone DEFAULT NULL,
     "language" varchar(5),
@@ -28,16 +27,14 @@
     CONSTRAINT users_username_key UNIQUE (username, mail_host)
 );
 
-CREATE INDEX users_alias_id_idx ON users (alias);
 
-  
 --
 -- Table "session"
 -- Name: session; Type: TABLE; Schema: public; Owner: postgres
 --
 
 CREATE TABLE "session" (
-    sess_id varchar(40) DEFAULT '' PRIMARY KEY,
+    sess_id varchar(128) DEFAULT '' PRIMARY KEY,
     created timestamp with time zone DEFAULT now() NOT NULL,
     changed timestamp with time zone DEFAULT now() NOT NULL,
     ip varchar(41) NOT NULL,
@@ -48,11 +45,11 @@
 
 
 --
--- Sequence "identity_ids"
--- Name: identity_ids; Type: SEQUENCE; Schema: public; Owner: postgres
+-- Sequence "identities_seq"
+-- Name: identities_seq; Type: SEQUENCE; Schema: public; Owner: postgres
 --
 
-CREATE SEQUENCE identity_ids
+CREATE SEQUENCE identities_seq
     START WITH 1
     INCREMENT BY 1
     NO MAXVALUE
@@ -65,7 +62,7 @@
 --
 
 CREATE TABLE identities (
-    identity_id integer DEFAULT nextval('identity_ids'::text) PRIMARY KEY,
+    identity_id integer DEFAULT nextval('identities_seq'::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,
@@ -81,14 +78,15 @@
 );
 
 CREATE INDEX identities_user_id_idx ON identities (user_id, del);
+CREATE INDEX identities_email_idx ON identities (email, del);
 
 
 --
--- Sequence "contact_ids"
--- Name: contact_ids; Type: SEQUENCE; Schema: public; Owner: postgres
+-- Sequence "contacts_seq"
+-- Name: contacts_seq; Type: SEQUENCE; Schema: public; Owner: postgres
 --
 
-CREATE SEQUENCE contact_ids
+CREATE SEQUENCE contacts_seq
     START WITH 1
     INCREMENT BY 1
     NO MAXVALUE
@@ -101,27 +99,27 @@
 --
 
 CREATE TABLE contacts (
-    contact_id integer DEFAULT nextval('contact_ids'::text) PRIMARY KEY,
+    contact_id integer DEFAULT nextval('contacts_seq'::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 DEFAULT 0 NOT NULL,
     name varchar(128) DEFAULT '' NOT NULL,
-    email varchar(255) DEFAULT '' NOT NULL,
+    email text DEFAULT '' NOT NULL,
     firstname varchar(128) DEFAULT '' NOT NULL,
     surname varchar(128) DEFAULT '' NOT NULL,
     vcard text,
     words text
 );
 
-CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);
+CREATE INDEX contacts_user_id_idx ON contacts (user_id, del);
 
 --
--- Sequence "contactgroups_ids"
--- Name: contactgroups_ids; Type: SEQUENCE; Schema: public; Owner: postgres
+-- Sequence "contactgroups_seq"
+-- Name: contactgroups_seq; Type: SEQUENCE; Schema: public; Owner: postgres
 --
 
-CREATE SEQUENCE contactgroups_ids
+CREATE SEQUENCE contactgroups_seq
     INCREMENT BY 1
     NO MAXVALUE
     NO MINVALUE
@@ -133,7 +131,7 @@
 --
 
 CREATE TABLE contactgroups (
-    contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
+    contactgroup_id integer DEFAULT nextval('contactgroups_seq'::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,
@@ -160,32 +158,36 @@
 CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
 
 --
--- Sequence "cache_ids"
--- Name: cache_ids; Type: SEQUENCE; Schema: public; Owner: postgres
---
-
-CREATE SEQUENCE cache_ids
-    INCREMENT BY 1
-    NO MAXVALUE
-    NO MINVALUE
-    CACHE 1;
-
---
 -- Table "cache"
 -- Name: cache; Type: TABLE; Schema: public; Owner: postgres
 --
 
 CREATE TABLE "cache" (
-    cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY,
     user_id integer NOT NULL
-    	REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+        REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     cache_key varchar(128) DEFAULT '' NOT NULL,
     created timestamp with time zone DEFAULT now() NOT NULL,
+    expires timestamp with time zone DEFAULT NULL,
     data text NOT NULL
 );
 
 CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key);
-CREATE INDEX cache_created_idx ON "cache" (created);
+CREATE INDEX cache_expires_idx ON "cache" (expires);
+
+--
+-- Table "cache_shared"
+-- Name: cache_shared; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE "cache_shared" (
+    cache_key varchar(255) NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    expires timestamp with time zone DEFAULT NULL,
+    data text NOT NULL
+);
+
+CREATE INDEX cache_shared_cache_key_idx ON "cache_shared" (cache_key);
+CREATE INDEX cache_shared_expires_idx ON "cache_shared" (expires);
 
 --
 -- Table "cache_index"
@@ -194,14 +196,15 @@
 
 CREATE TABLE cache_index (
     user_id integer NOT NULL
-    	REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+        REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     mailbox varchar(255) NOT NULL,
-    changed timestamp with time zone DEFAULT now() NOT NULL,
+    expires timestamp with time zone DEFAULT NULL,
+    valid smallint NOT NULL DEFAULT 0,
     data text NOT NULL,
     PRIMARY KEY (user_id, mailbox)
 );
 
-CREATE INDEX cache_index_changed_idx ON cache_index (changed);
+CREATE INDEX cache_index_expires_idx ON cache_index (expires);
 
 --
 -- Table "cache_thread"
@@ -210,14 +213,14 @@
 
 CREATE TABLE cache_thread (
     user_id integer NOT NULL
-    	REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+        REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     mailbox varchar(255) NOT NULL,
-    changed timestamp with time zone DEFAULT now() NOT NULL,
+    expires timestamp with time zone DEFAULT NULL,
     data text NOT NULL,
     PRIMARY KEY (user_id, mailbox)
 );
 
-CREATE INDEX cache_thread_changed_idx ON cache_thread (changed);
+CREATE INDEX cache_thread_expires_idx ON cache_thread (expires);
 
 --
 -- Table "cache_messages"
@@ -226,21 +229,16 @@
 
 CREATE TABLE cache_messages (
     user_id integer NOT NULL
-    	REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+        REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     mailbox varchar(255) NOT NULL,
     uid integer NOT NULL,
-    changed timestamp with time zone DEFAULT now() NOT NULL,
+    expires timestamp with time zone DEFAULT NULL,
     data text NOT NULL,
-    seen smallint NOT NULL DEFAULT 0,
-    deleted smallint NOT NULL DEFAULT 0,
-    answered smallint NOT NULL DEFAULT 0,
-    forwarded smallint NOT NULL DEFAULT 0,
-    flagged smallint NOT NULL DEFAULT 0,
-    mdnsent smallint NOT NULL DEFAULT 0,
+    flags integer NOT NULL DEFAULT 0,
     PRIMARY KEY (user_id, mailbox, uid)
 );
 
-CREATE INDEX cache_messages_changed_idx ON cache_messages (changed);
+CREATE INDEX cache_messages_expires_idx ON cache_messages (expires);
 
 --
 -- Table "dictionary"
@@ -249,18 +247,18 @@
 
 CREATE TABLE dictionary (
     user_id integer DEFAULT NULL
-    	REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+        REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
    "language" varchar(5) NOT NULL,
     data text NOT NULL,
     CONSTRAINT dictionary_user_id_language_key UNIQUE (user_id, "language")
 );
 
 --
--- Sequence "searches_ids"
--- Name: searches_ids; Type: SEQUENCE; Schema: public; Owner: postgres
+-- Sequence "searches_seq"
+-- Name: searches_seq; Type: SEQUENCE; Schema: public; Owner: postgres
 --
 
-CREATE SEQUENCE search_ids
+CREATE SEQUENCE searches_seq
     INCREMENT BY 1
     NO MAXVALUE
     NO MINVALUE
@@ -272,7 +270,7 @@
 --
 
 CREATE TABLE searches (
-    search_id integer DEFAULT nextval('search_ids'::text) PRIMARY KEY,
+    search_id integer DEFAULT nextval('searches_seq'::text) PRIMARY KEY,
     user_id integer NOT NULL
         REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     "type" smallint DEFAULT 0 NOT NULL,
@@ -280,3 +278,16 @@
     data text NOT NULL,
     CONSTRAINT searches_user_id_key UNIQUE (user_id, "type", name)
 );
+
+
+--
+-- Table "system"
+-- Name: system; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE "system" (
+    name varchar(64) NOT NULL PRIMARY KEY,
+    value text
+);
+
+INSERT INTO system (name, value) VALUES ('roundcube-version', '2013061000');

--
Gitblit v1.9.1