HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: /volume1/@appstore/MailClient/etc/sql/mail_client_1.sql
CREATE TABLE attachment_temp(
	id integer NOT NULL,
	is_inline boolean NOT NULL,
	content_id varchar(64) NOT NULL,
	name varchar(256) NOT NULL,
	path text NOT NULL,
	CONSTRAINT attachment_temp_id_pk PRIMARY KEY (id),
	CONSTRAINT attachment_temp_content_id_uk UNIQUE (content_id)
);

CREATE TABLE reference(
	id integer NOT NULL,
	msg_id varchar(1024) NOT NULL,
	CONSTRAINT reference_id_pk PRIMARY KEY (id),
	CONSTRAINT reference_msg_id_uk UNIQUE (msg_id)
);

CREATE TABLE thread(
	id integer NOT NULL,
	last_modified bigint NOT NULL,
	CONSTRAINT thread_id_pk PRIMARY KEY (id)
);

CREATE TABLE sticker(
	id integer NOT NULL,
	category integer NOT NULL DEFAULT 0,
	name varchar(256) NOT NULL,
	path text NOT NULL,
	last_modified bigint NOT NULL DEFAULT (strftime('%s', 'now')),
	CONSTRAINT sticker_id_pk PRIMARY KEY (id)
);

CREATE TABLE mailbox(
	id integer NOT NULL,
	is_subscribed boolean NOT NULL,
	uid_validity bigint NOT NULL,
	highest_mod_seq varchar(32) NOT NULL,
	path varchar(256) NOT NULL,
	CONSTRAINT mailbox_id_pk PRIMARY KEY (id),
	CONSTRAINT mailbox_uid_validity_uk UNIQUE (uid_validity),
	CONSTRAINT mailbox_path_uk UNIQUE (path)
);

CREATE TABLE filter(
	id integer NOT NULL,
	sequence integer NOT NULL DEFAULT 0,
	condition text NOT NULL,
	action text NOT NULL,
	updated integer NOT NULL DEFAULT 0,
	CONSTRAINT filter_id_pk PRIMARY KEY (id)
);

CREATE TABLE many_message_has_many_reference(
	is_message_id boolean NOT NULL DEFAULT 0,
	id_message integer,
	id_reference integer,
	CONSTRAINT many_message_has_many_reference_pk PRIMARY KEY (id_message,id_reference),
	CONSTRAINT message_fk FOREIGN KEY (id_message) REFERENCES message (id) MATCH FULL
	ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE,
	CONSTRAINT reference_fk FOREIGN KEY (id_reference) REFERENCES reference (id) MATCH FULL
	ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE
);

CREATE TABLE many_thread_has_many_label(
	id_thread integer,
	id_label integer,
	CONSTRAINT many_thread_has_many_label_pk PRIMARY KEY (id_thread,id_label),
	CONSTRAINT thread_fk FOREIGN KEY (id_thread) REFERENCES thread (id) MATCH FULL
	ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE,
	CONSTRAINT label_fk FOREIGN KEY (id_label) REFERENCES label (id) MATCH FULL
	ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE
);

CREATE TABLE attachment(
	id integer NOT NULL,
	is_inline boolean NOT NULL,
	size integer NOT NULL,
	part_id varchar(16) NOT NULL,
	encoding varchar(32) NOT NULL,
	content_id varchar(64) NOT NULL,
	mimetype varchar(128) NOT NULL,
	name varchar(256) NOT NULL,
	preview_path text NOT NULL DEFAULT '',
	id_message integer NOT NULL,
	CONSTRAINT attachment_id_pk PRIMARY KEY (id),
	CONSTRAINT message_fk FOREIGN KEY (id_message) REFERENCES message (id) MATCH FULL
	ON DELETE RESTRICT ON UPDATE CASCADE NOT DEFERRABLE
);

CREATE TABLE email(
	id integer NOT NULL,
	display_addr varchar(1024) NOT NULL,
	CONSTRAINT email_id_pk PRIMARY KEY (id),
	CONSTRAINT email_display_addr_uk UNIQUE (display_addr)
);

CREATE TABLE many_message_has_many_recipient(
	id_message integer,
	id_email integer,
	CONSTRAINT many_message_has_many_recipient_pk PRIMARY KEY (id_message,id_email),
	CONSTRAINT message_fk FOREIGN KEY (id_message) REFERENCES message (id) MATCH FULL
	ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE,
	CONSTRAINT email_fk FOREIGN KEY (id_email) REFERENCES email (id) MATCH FULL
	ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE
);

CREATE TABLE message(
	id integer NOT NULL,
	uid bigint NOT NULL,
	type integer NOT NULL DEFAULT 0,
	is_read boolean NOT NULL,
	star integer NOT NULL DEFAULT 0,
	body_preview varchar(512) NOT NULL,
	from_addr varchar(1024) NOT NULL,
	subject varchar(1024) NOT NULL,
	arrival_time bigint NOT NULL,
	last_modified bigint NOT NULL,
	reply_to integer,
	id_thread integer NOT NULL,
	id_mailbox integer NOT NULL,
	CONSTRAINT message_id_pk PRIMARY KEY (id),
	CONSTRAINT reply_to_fk FOREIGN KEY (reply_to)
	REFERENCES message (id) MATCH FULL
	ON DELETE SET NULL ON UPDATE CASCADE NOT DEFERRABLE,
	CONSTRAINT thread_fk FOREIGN KEY (id_thread) REFERENCES thread (id) MATCH FULL
	ON DELETE RESTRICT ON UPDATE CASCADE NOT DEFERRABLE,
	CONSTRAINT mailbox_fk FOREIGN KEY (id_mailbox) REFERENCES mailbox (id) MATCH FULL
	ON DELETE RESTRICT ON UPDATE CASCADE NOT DEFERRABLE,
	CONSTRAINT message_uid_mailbox_uk UNIQUE (uid, id_mailbox)
);

CREATE TABLE label(
	id integer NOT NULL,
	flag_name varchar(64) NOT NULL,
	name varchar(128) NOT NULL,
	config text NOT NULL,
	updated integer NOT NULL DEFAULT 0,
	CONSTRAINT label_id_pk PRIMARY KEY (id),
	CONSTRAINT label_flag_name_uk UNIQUE (flag_name),
	CONSTRAINT label_name_uk UNIQUE (name)
);

CREATE TABLE config(
	key varchar(256) NOT NULL,
	value text NOT NULL,
	updated integer NOT NULL DEFAULT 0,
	CONSTRAINT config_key_pk PRIMARY KEY (key)
);

CREATE VIEW reference_with_message_id
AS SELECT * FROM reference INNER JOIN many_message_has_many_reference ON reference.id = many_message_has_many_reference.id_reference;

CREATE VIEW reference_with_thread_id
AS SELECT * FROM reference_with_message_id INNER JOIN (SELECT id, id_thread FROM message) AS t1 ON t1.id = reference_with_message_id.id_message;

CREATE VIEW thread_max_arrival
AS SELECT * FROM thread INNER JOIN (SELECT id_thread, MAX(arrival_time) AS max_arrival_time FROM message WHERE id_mailbox NOT IN (-3, -5, -6) GROUP BY id_thread) AS t1 on thread.id = t1.id_thread;

CREATE VIEW thread_max_arrival_draft
AS SELECT * FROM thread INNER JOIN (SELECT id_thread, MAX(arrival_time) AS max_arrival_time FROM message WHERE id_mailbox = -3 GROUP BY id_thread) AS t1 on thread.id = t1.id_thread;

CREATE VIEW thread_max_arrival_junk
AS SELECT * FROM thread INNER JOIN (SELECT id_thread, MAX(arrival_time) AS max_arrival_time FROM message WHERE id_mailbox = -5 GROUP BY id_thread) AS t1 on thread.id = t1.id_thread;

CREATE VIEW thread_max_arrival_sent
AS SELECT * FROM thread INNER JOIN (SELECT id_thread, MAX(arrival_time) AS max_arrival_time FROM message WHERE id_mailbox = -4 GROUP BY id_thread) AS t1 on thread.id = t1.id_thread;

CREATE VIEW thread_max_arrival_trash
AS SELECT * FROM thread INNER JOIN (SELECT id_thread, MAX(arrival_time) AS max_arrival_time FROM message WHERE id_mailbox = -6 GROUP BY id_thread) AS t1 on thread.id = t1.id_thread;

CREATE VIEW thread_max_arrival_single_draft
AS SELECT * FROM thread INNER JOIN ( SELECT id_thread, MAX(arrival_time) AS max_arrival_time FROM message WHERE id_mailbox NOT IN (-3, -5, -6) GROUP BY id_thread UNION ALL select id_thread, arrival_time as max_arrival_time from message group by id_thread having count(id_thread) = 1 AND id_mailbox = -3 ) AS t1 on thread.id = t1.id_thread;

CREATE VIEW message_with_recipient
AS SELECT id_message, group_concat(display_addr) AS recipient FROM (SELECT * FROM many_message_has_many_recipient LEFT JOIN email ON id_email = email.id) GROUP BY id_message;


CREATE INDEX message_uid_idx ON message (uid);
CREATE INDEX message_arrival_time_idx ON message (arrival_time);
CREATE INDEX sticker_category_idx ON sticker (category);
CREATE INDEX message_thread_id_idx ON message (id_thread);
CREATE INDEX reference_msg_id_idx ON reference (msg_id);
CREATE INDEX message_mailbox_id_idx ON message (id_mailbox);


INSERT INTO sticker VALUES(1,1,'face_01.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_01.png', 0);
INSERT INTO sticker VALUES(2,1,'face_02.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_02.png', 0);
INSERT INTO sticker VALUES(3,1,'face_03.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_03.png', 0);
INSERT INTO sticker VALUES(4,1,'face_04.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_04.png', 0);
INSERT INTO sticker VALUES(5,1,'face_05.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_05.png', 0);
INSERT INTO sticker VALUES(6,1,'face_06.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_06.png', 0);
INSERT INTO sticker VALUES(7,1,'face_07.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_07.png', 0);
INSERT INTO sticker VALUES(8,1,'face_08.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_08.png', 0);
INSERT INTO sticker VALUES(9,1,'face_09.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_09.png', 0);
INSERT INTO sticker VALUES(10,1,'face_10.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_10.png', 0);
INSERT INTO sticker VALUES(11,1,'face_11.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_11.png', 0);
INSERT INTO sticker VALUES(12,1,'face_12.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_12.png', 0);
INSERT INTO sticker VALUES(13,1,'face_13.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_13.png', 0);
INSERT INTO sticker VALUES(14,1,'face_14.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_14.png', 0);
INSERT INTO sticker VALUES(15,1,'face_15.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_15.png', 0);
INSERT INTO sticker VALUES(16,1,'face_16.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_16.png', 0);
INSERT INTO sticker VALUES(17,1,'face_17.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_17.png', 0);
INSERT INTO sticker VALUES(18,1,'face_18.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_18.png', 0);
INSERT INTO sticker VALUES(19,1,'face_19.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_19.png', 0);
INSERT INTO sticker VALUES(20,1,'face_20.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_20.png', 0);
INSERT INTO sticker VALUES(21,1,'face_21.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_21.png', 0);
INSERT INTO sticker VALUES(22,1,'face_22.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_22.png', 0);
INSERT INTO sticker VALUES(23,1,'face_23.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_23.png', 0);
INSERT INTO sticker VALUES(24,1,'face_24.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_24.png', 0);
INSERT INTO sticker VALUES(25,1,'face_25.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_25.png', 0);
INSERT INTO sticker VALUES(26,1,'face_26.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_26.png', 0);
INSERT INTO sticker VALUES(27,1,'face_27.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_27.png', 0);
INSERT INTO sticker VALUES(28,1,'face_28.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_28.png', 0);
INSERT INTO sticker VALUES(29,1,'face_29.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_29.png', 0);
INSERT INTO sticker VALUES(30,1,'face_30.png','/var/packages/MailClient/target/ui/images/emoticon/2x/face_30.png', 0);
INSERT INTO sticker VALUES(31,1,'item_01.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_01.png', 0);
INSERT INTO sticker VALUES(32,1,'item_02.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_02.png', 0);
INSERT INTO sticker VALUES(33,1,'item_03.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_03.png', 0);
INSERT INTO sticker VALUES(34,1,'item_04.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_04.png', 0);
INSERT INTO sticker VALUES(35,1,'item_05.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_05.png', 0);
INSERT INTO sticker VALUES(36,1,'item_06.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_06.png', 0);
INSERT INTO sticker VALUES(37,1,'item_07.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_07.png', 0);
INSERT INTO sticker VALUES(38,1,'item_08.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_08.png', 0);
INSERT INTO sticker VALUES(39,1,'item_09.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_09.png', 0);
INSERT INTO sticker VALUES(40,1,'item_10.png','/var/packages/MailClient/target/ui/images/emoticon/2x/item_10.png', 0);
INSERT INTO sticker VALUES(41,1,'text_01.png','/var/packages/MailClient/target/ui/images/emoticon/2x/text_01.png', 0);
INSERT INTO sticker VALUES(42,1,'text_02.png','/var/packages/MailClient/target/ui/images/emoticon/2x/text_02.png', 0);
INSERT INTO sticker VALUES(43,1,'text_03.png','/var/packages/MailClient/target/ui/images/emoticon/2x/text_03.png', 0);

INSERT INTO sticker VALUES(44,2,'01.png','/var/packages/MailClient/target/ui/images/sticker/business_man/01.png', 0);
INSERT INTO sticker VALUES(45,2,'02.png','/var/packages/MailClient/target/ui/images/sticker/business_man/02.png', 0);
INSERT INTO sticker VALUES(46,2,'03.png','/var/packages/MailClient/target/ui/images/sticker/business_man/03.png', 0);
INSERT INTO sticker VALUES(47,2,'04.png','/var/packages/MailClient/target/ui/images/sticker/business_man/04.png', 0);
INSERT INTO sticker VALUES(48,2,'05.png','/var/packages/MailClient/target/ui/images/sticker/business_man/05.png', 0);
INSERT INTO sticker VALUES(49,2,'06.png','/var/packages/MailClient/target/ui/images/sticker/business_man/06.png', 0);
INSERT INTO sticker VALUES(50,2,'07.png','/var/packages/MailClient/target/ui/images/sticker/business_man/07.png', 0);
INSERT INTO sticker VALUES(51,2,'08.png','/var/packages/MailClient/target/ui/images/sticker/business_man/08.png', 0);
INSERT INTO sticker VALUES(52,2,'09.png','/var/packages/MailClient/target/ui/images/sticker/business_man/09.png', 0);
INSERT INTO sticker VALUES(53,2,'10.png','/var/packages/MailClient/target/ui/images/sticker/business_man/10.png', 0);
INSERT INTO sticker VALUES(54,2,'11.png','/var/packages/MailClient/target/ui/images/sticker/business_man/11.png', 0);
INSERT INTO sticker VALUES(55,2,'12.png','/var/packages/MailClient/target/ui/images/sticker/business_man/12.png', 0);
INSERT INTO sticker VALUES(56,2,'13.png','/var/packages/MailClient/target/ui/images/sticker/business_man/13.png', 0);
INSERT INTO sticker VALUES(57,2,'14.png','/var/packages/MailClient/target/ui/images/sticker/business_man/14.png', 0);
INSERT INTO sticker VALUES(58,2,'15.png','/var/packages/MailClient/target/ui/images/sticker/business_man/15.png', 0);
INSERT INTO sticker VALUES(59,2,'16.png','/var/packages/MailClient/target/ui/images/sticker/business_man/16.png', 0);
INSERT INTO sticker VALUES(60,2,'17.png','/var/packages/MailClient/target/ui/images/sticker/business_man/17.png', 0);
INSERT INTO sticker VALUES(61,2,'18.png','/var/packages/MailClient/target/ui/images/sticker/business_man/18.png', 0);
INSERT INTO sticker VALUES(62,2,'19.png','/var/packages/MailClient/target/ui/images/sticker/business_man/19.png', 0);
INSERT INTO sticker VALUES(63,2,'20.png','/var/packages/MailClient/target/ui/images/sticker/business_man/20.png', 0);
INSERT INTO sticker VALUES(64,2,'21.png','/var/packages/MailClient/target/ui/images/sticker/business_man/21.png', 0);

INSERT INTO sticker VALUES(65,3,'01.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/01.png', 0);
INSERT INTO sticker VALUES(66,3,'02.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/02.png', 0);
INSERT INTO sticker VALUES(67,3,'03.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/03.png', 0);
INSERT INTO sticker VALUES(68,3,'04.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/04.png', 0);
INSERT INTO sticker VALUES(69,3,'05.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/05.png', 0);
INSERT INTO sticker VALUES(70,3,'06.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/06.png', 0);
INSERT INTO sticker VALUES(71,3,'07.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/07.png', 0);
INSERT INTO sticker VALUES(72,3,'08.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/08.png', 0);
INSERT INTO sticker VALUES(73,3,'09.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/09.png', 0);
INSERT INTO sticker VALUES(74,3,'10.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/10.png', 0);
INSERT INTO sticker VALUES(75,3,'11.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/11.png', 0);
INSERT INTO sticker VALUES(76,3,'12.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/12.png', 0);
INSERT INTO sticker VALUES(77,3,'13.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/13.png', 0);
INSERT INTO sticker VALUES(78,3,'14.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/14.png', 0);
INSERT INTO sticker VALUES(79,3,'15.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/15.png', 0);
INSERT INTO sticker VALUES(80,3,'16.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/16.png', 0);
INSERT INTO sticker VALUES(81,3,'17.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/17.png', 0);
INSERT INTO sticker VALUES(82,3,'18.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/18.png', 0);
INSERT INTO sticker VALUES(83,3,'19.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/19.png', 0);
INSERT INTO sticker VALUES(84,3,'20.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/20.png', 0);
INSERT INTO sticker VALUES(85,3,'21.png','/var/packages/MailClient/target/ui/images/sticker/business_woman/21.png', 0);

UPDATE sticker SET last_modified = strftime('%s','now');

INSERT INTO mailbox VALUES(0, 0, 0, 0, '');
INSERT INTO config (key, value) VALUES('version', '1');