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/sqlite.initial.sql | 213 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 145 insertions(+), 68 deletions(-) diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index 4ddc40d..e7f74dd 100644 --- a/SQL/sqlite.initial.sql +++ b/SQL/sqlite.initial.sql @@ -1,48 +1,44 @@ --- RoundCube Webmail initial database structure --- Version 0.1-beta2 --- - --- -------------------------------------------------------- +-- Roundcube Webmail initial database structure -- --- Table structure for table `cache` --- - -CREATE TABLE cache ( - cache_id integer NOT NULL PRIMARY KEY, - user_id integer NOT NULL default 0, - session_id varchar(40) default NULL, - cache_key varchar(128) NOT NULL default '', - created datetime NOT NULL default '0000-00-00 00:00:00', - data longtext NOT NULL -); - -CREATE INDEX ix_cache_user_id ON cache(user_id); -CREATE INDEX ix_cache_cache_key ON cache(cache_key); -CREATE INDEX ix_cache_session_id ON cache(session_id); - - --- -------------------------------------------------------- - --- --- Table structure for table contacts +-- Table structure for table contacts and related -- CREATE TABLE contacts ( contact_id integer NOT NULL PRIMARY KEY, - user_id integer NOT NULL default '0', + user_id integer NOT NULL, changed datetime NOT NULL default '0000-00-00 00:00:00', del tinyint NOT NULL default '0', name varchar(128) NOT NULL default '', - email varchar(128) NOT NULL default '', + email text NOT NULL default '', firstname varchar(128) NOT NULL default '', surname varchar(128) NOT NULL default '', - vcard text NOT NULL default '' + vcard text NOT NULL default '', + words text NOT NULL default '' ); -CREATE INDEX ix_contacts_user_id ON contacts(user_id); +CREATE INDEX ix_contacts_user_id ON contacts(user_id, del); --- -------------------------------------------------------- + +CREATE TABLE contactgroups ( + contactgroup_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL default '0', + changed datetime NOT NULL default '0000-00-00 00:00:00', + del tinyint NOT NULL default '0', + name varchar(128) NOT NULL default '' +); + +CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del); + + +CREATE TABLE contactgroupmembers ( + contactgroup_id integer NOT NULL, + contact_id integer NOT NULL default '0', + created datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (contactgroup_id, contact_id) +); + +CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id); -- -- Table structure for table identities @@ -51,6 +47,7 @@ CREATE TABLE identities ( identity_id integer NOT NULL PRIMARY KEY, user_id integer NOT NULL default '0', + changed datetime NOT NULL default '0000-00-00 00:00:00', del tinyint NOT NULL default '0', standard tinyint NOT NULL default '0', name varchar(128) NOT NULL default '', @@ -58,13 +55,12 @@ email varchar(128) NOT NULL default '', "reply-to" varchar(128) NOT NULL default '', bcc varchar(128) NOT NULL default '', - signature text NOT NULL default '' + signature text NOT NULL default '', + html_signature tinyint NOT NULL default '0' ); -CREATE INDEX ix_identities_user_id ON identities(user_id); - - --- -------------------------------------------------------- +CREATE INDEX ix_identities_user_id ON identities(user_id, del); +CREATE INDEX ix_identities_email ON identities(email, del); -- -- Table structure for table users @@ -74,54 +70,135 @@ user_id integer NOT NULL PRIMARY KEY, username varchar(128) NOT NULL default '', mail_host varchar(128) NOT NULL default '', - alias varchar(128) NOT NULL default '', created datetime NOT NULL default '0000-00-00 00:00:00', - last_login datetime NOT NULL default '0000-00-00 00:00:00', - language varchar(5) NOT NULL default 'en', + last_login datetime DEFAULT NULL, + language varchar(5), preferences text NOT NULL default '' ); - --- -------------------------------------------------------- +CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host); -- -- Table structure for table session -- CREATE TABLE session ( - sess_id varchar(40) NOT NULL PRIMARY KEY, + sess_id varchar(128) NOT NULL PRIMARY KEY, created datetime NOT NULL default '0000-00-00 00:00:00', changed datetime NOT NULL default '0000-00-00 00:00:00', - ip varchar(15) NOT NULL default '', + ip varchar(40) NOT NULL default '', vars text NOT NULL ); +CREATE INDEX ix_session_changed ON session (changed); --- -------------------------------------------------------- +-- +-- Table structure for table dictionary +-- --- --- Table structure for table messages --- - -CREATE TABLE messages ( - message_id integer NOT NULL PRIMARY KEY, - user_id integer NOT NULL default '0', - del tinyint NOT NULL default '0', - cache_key varchar(128) NOT NULL default '', - created datetime NOT NULL default '0000-00-00 00:00:00', - idx integer NOT NULL default '0', - uid integer NOT NULL default '0', - subject varchar(255) NOT NULL default '', - "from" varchar(255) NOT NULL default '', - "to" varchar(255) NOT NULL default '', - cc varchar(255) NOT NULL default '', - date datetime NOT NULL default '0000-00-00 00:00:00', - size integer NOT NULL default '0', - headers text NOT NULL, - structure text +CREATE TABLE dictionary ( + user_id integer DEFAULT NULL, + "language" varchar(5) NOT NULL, + data text NOT NULL ); -CREATE INDEX ix_messages_user_id ON messages(user_id); -CREATE INDEX ix_messages_cache_key ON messages(cache_key); -CREATE INDEX ix_messages_idx ON messages(idx); -CREATE INDEX ix_messages_uid ON messages(uid); +CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language"); + +-- +-- Table structure for table searches +-- + +CREATE TABLE searches ( + search_id integer NOT NULL PRIMARY KEY, + user_id integer NOT NULL DEFAULT '0', + "type" smallint NOT NULL DEFAULT '0', + name varchar(128) NOT NULL, + data text NOT NULL +); + +CREATE UNIQUE INDEX ix_searches_user_type_name ON searches (user_id, type, name); + +-- +-- Table structure for table cache +-- + +CREATE TABLE cache ( + user_id integer NOT NULL default 0, + cache_key varchar(128) NOT NULL default '', + created datetime NOT NULL default '0000-00-00 00:00:00', + expires datetime DEFAULT NULL, + data text NOT NULL +); + +CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key); +CREATE INDEX ix_cache_expires ON cache(expires); + +-- +-- Table structure for table cache_shared +-- + +CREATE TABLE cache_shared ( + cache_key varchar(255) NOT NULL, + created datetime NOT NULL default '0000-00-00 00:00:00', + expires datetime DEFAULT NULL, + data text NOT NULL +); + +CREATE INDEX ix_cache_shared_cache_key ON cache_shared(cache_key); +CREATE INDEX ix_cache_shared_expires ON cache_shared(expires); + +-- +-- Table structure for table cache_index +-- + +CREATE TABLE cache_index ( + user_id integer NOT NULL, + mailbox varchar(255) NOT NULL, + expires datetime DEFAULT NULL, + valid smallint NOT NULL DEFAULT '0', + data text NOT NULL, + PRIMARY KEY (user_id, mailbox) +); + +CREATE INDEX ix_cache_index_expires ON cache_index (expires); + +-- +-- Table structure for table cache_thread +-- + +CREATE TABLE cache_thread ( + user_id integer NOT NULL, + mailbox varchar(255) NOT NULL, + expires datetime DEFAULT NULL, + data text NOT NULL, + PRIMARY KEY (user_id, mailbox) +); + +CREATE INDEX ix_cache_thread_expires ON cache_thread (expires); + +-- +-- Table structure for table cache_messages +-- + +CREATE TABLE cache_messages ( + user_id integer NOT NULL, + mailbox varchar(255) NOT NULL, + uid integer NOT NULL, + expires datetime DEFAULT NULL, + data text NOT NULL, + flags integer NOT NULL DEFAULT '0', + PRIMARY KEY (user_id, mailbox, uid) +); + +CREATE INDEX ix_cache_messages_expires ON cache_messages (expires); + +-- +-- Table structure for table system +-- + +CREATE TABLE system ( + name varchar(64) NOT NULL PRIMARY KEY, + value text NOT NULL +); + +INSERT INTO system (name, value) VALUES ('roundcube-version', '2013061000'); -- Gitblit v1.9.1