73 lines
3.5 KiB
MySQL
73 lines
3.5 KiB
MySQL
|
DROP TABLE archive_collections;
|
||
|
|
||
|
CREATE TABLE archive_collections(id SERIAL not null,
|
||
|
prev_id INTEGER,
|
||
|
next_id INTEGER,
|
||
|
us VARCHAR(2047) NOT NULL,
|
||
|
with_user VARCHAR(1023) NOT NULL,
|
||
|
with_server VARCHAR(1023) NOT NULL,
|
||
|
with_resource VARCHAR(1023) NOT NULL,
|
||
|
utc timestamp NOT NULL,
|
||
|
change_by VARCHAR(3071),
|
||
|
change_utc timestamp,
|
||
|
deleted INTEGER,
|
||
|
subject VARCHAR(1023),
|
||
|
thread VARCHAR(1023),
|
||
|
crypt INTEGER,
|
||
|
extra VARCHAR(32767),
|
||
|
PRIMARY KEY(id));
|
||
|
CREATE INDEX IDX_archive_colls_prev_id ON archive_collections(prev_id);
|
||
|
CREATE INDEX IDX_archive_colls_next_id ON archive_collections(next_id);
|
||
|
CREATE INDEX IDX_archive_colls_us ON archive_collections(us);
|
||
|
CREATE INDEX IDX_archive_colls_with_server ON archive_collections(with_server);
|
||
|
CREATE INDEX IDX_archive_colls_with_user ON archive_collections(with_user);
|
||
|
CREATE INDEX IDX_archive_colls_with_resource ON archive_collections(with_resource);
|
||
|
CREATE INDEX IDX_archive_colls_utc ON archive_collections(utc);
|
||
|
CREATE INDEX IDX_archive_colls_change_utc ON archive_collections(change_utc);
|
||
|
|
||
|
DROP TABLE archive_messages;
|
||
|
CREATE TABLE archive_messages(id SERIAL NOT NULL,
|
||
|
coll_id INTEGER NOT NULL,
|
||
|
utc timestamp NOT NULL,
|
||
|
dir INTEGER,
|
||
|
body VARCHAR(65535),
|
||
|
name VARCHAR(1023),
|
||
|
PRIMARY KEY(id));
|
||
|
CREATE INDEX IDX_archive_msgs_coll_id ON archive_messages(coll_id);
|
||
|
CREATE INDEX IDX_archive_msgs_utc ON archive_messages(utc);
|
||
|
|
||
|
DROP TABLE archive_jid_prefs;
|
||
|
CREATE TABLE archive_jid_prefs(us VARCHAR(2047) NOT NULL,
|
||
|
with_user VARCHAR(1023) NOT NULL,
|
||
|
with_server VARCHAR(1023) NOT NULL,
|
||
|
with_resource VARCHAR(1023) NOT NULL,
|
||
|
save integer,
|
||
|
expire INTEGER,
|
||
|
otr integer);
|
||
|
CREATE INDEX IDX_archive_jid_prefs_us ON archive_jid_prefs(us);
|
||
|
CREATE INDEX IDX_archive_jid_prefs_with_user ON archive_jid_prefs(with_user);
|
||
|
CREATE INDEX IDX_archive_jid_prefs_with_server ON archive_jid_prefs(with_server);
|
||
|
CREATE INDEX IDX_archive_jid_prefs_with_resource ON archive_jid_prefs(with_resource);
|
||
|
|
||
|
DROP TABLE archive_global_prefs;
|
||
|
CREATE TABLE archive_global_prefs(us VARCHAR(2047) NOT NULL,
|
||
|
save integer,
|
||
|
expire INTEGER,
|
||
|
otr integer,
|
||
|
method_auto integer,
|
||
|
method_local integer,
|
||
|
method_manual integer,
|
||
|
auto_save integer);
|
||
|
CREATE INDEX IDX_archive_global_prefs_us ON archive_global_prefs(us);
|
||
|
|
||
|
|
||
|
CREATE RULE archive_collections_delete AS ON DELETE
|
||
|
TO archive_collections
|
||
|
DO DELETE FROM archive_messages WHERE coll_id = OLD.id;
|
||
|
|
||
|
CREATE RULE archive_collections_update AS ON UPDATE
|
||
|
TO archive_collections
|
||
|
DO DELETE FROM archive_messages WHERE coll_id = NEW.id and NEW.deleted=1;
|
||
|
|
||
|
|