Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > ce0034c23dd8b6622931fe095974b00f > files > 70

dbmail-3.0.0-0.5.rc2.fc15.i686.rpm

DROP INDEX dbmail_sievescripts_3;
CREATE UNIQUE INDEX dbmail_sievescripts_3 ON dbmail_sievescripts(owner_idnr,name);

DROP TABLE IF EXISTS dbmail_mimeparts;
CREATE TABLE dbmail_mimeparts (
	id	INTEGER NOT NULL PRIMARY KEY,
	hash	TEXT NOT NULL,
	data	BLOB NOT NULL,
	size	INTEGER NOT NULL
);

CREATE INDEX dbmail_mimeparts_1 ON dbmail_mimeparts (hash);

DROP TABLE IF EXISTS dbmail_partlists;
CREATE TABLE dbmail_partlists (
	physmessage_id	INTEGER NOT NULL,
   	is_header 	BOOLEAN DEFAULT '0' NOT NULL,
	part_key	INTEGER DEFAULT '0' NOT NULL,
	part_depth	INTEGER DEFAULT '0' NOT NULL,
	part_order	INTEGER DEFAULT '0' NOT NULL,
	part_id		INTEGER NOT NULL
);

CREATE INDEX dbmail_partlists_1 ON dbmail_partlists(physmessage_id);
CREATE INDEX dbmail_partlists_2 ON dbmail_partlists(part_id);


-- ALTER TABLE ONLY dbmail_partlists
--    ADD CONSTRAINT dbmail_partlists_part_id_fkey FOREIGN KEY (part_id) REFERENCES dbmail_mimeparts(id) ON UPDATE CASCADE ON DELETE CASCADE;

DROP TRIGGER IF EXISTS fk_insert_partlists_mimeparts_id;
CREATE TRIGGER fk_insert_partlists_mimeparts_id
	BEFORE INSERT ON dbmail_partlists
	FOR EACH ROW BEGIN
		SELECT CASE 
			WHEN (new.part_id IS NOT NULL)
				AND ((SELECT id FROM dbmail_mimeparts WHERE id = new.part_id) IS NULL)
			THEN RAISE (ABORT, 'insert on table "dbmail_partlists" violates foreign key constraint "fk_insert_partlists_mimeparts_id"')
		END;
	END;
DROP TRIGGER IF EXISTS fk_update_partlists_mimeparts_id;
CREATE TRIGGER fk_update_partlists_mimeparts_id
	BEFORE UPDATE ON dbmail_partlists
	FOR EACH ROW BEGIN
		SELECT CASE 
			WHEN (new.part_id IS NOT NULL)
				AND ((SELECT id FROM dbmail_mimeparts WHERE id = new.part_id) IS NULL)
			THEN RAISE (ABORT, 'update on table "dbmail_partlists" violates foreign key constraint "fk_update_partlists_mimeparts_id"')
		END;
	END;
DROP TRIGGER IF EXISTS fk_update2_partlists_mimeparts_id;
CREATE TRIGGER fk_update2_partlists_mimeparts_id
	AFTER UPDATE ON dbmail_mimeparts
	FOR EACH ROW BEGIN
		UPDATE dbmail_partlists SET part_id = new.id WHERE part_id = OLD.id;
	END;
DROP TRIGGER IF EXISTS fk_delete_partlists_mimeparts_id;
CREATE TRIGGER fk_delete_partlists_mimeparts_id
	BEFORE DELETE ON dbmail_mimeparts
	FOR EACH ROW BEGIN
		DELETE FROM dbmail_partlists WHERE part_id = OLD.id;
	END;

-- ALTER TABLE ONLY dbmail_partlists
--    ADD CONSTRAINT dbmail_partlists_physmessage_id_fkey FOREIGN KEY (physmessage_id) REFERENCES dbmail_physmessage(id) ON UPDATE CASCADE ON DELETE CASCADE;

DROP TRIGGER IF EXISTS fk_insert_partlists_physmessage_id;
CREATE TRIGGER fk_insert_partlists_physmessage_id
	BEFORE INSERT ON dbmail_partlists
	FOR EACH ROW BEGIN
		SELECT CASE 
			WHEN (new.physmessage_id IS NOT NULL)
				AND ((SELECT id FROM dbmail_physmessage WHERE id = new.physmessage_id) IS NULL)
			THEN RAISE (ABORT, 'insert on table "dbmail_partlists" violates foreign key constraint "fk_insert_partlists_physmessage_id"')
		END;
	END;
DROP TRIGGER IF EXISTS fk_update_partlists_physmessage_id;
CREATE TRIGGER fk_update_partlists_physmessage_id
	BEFORE UPDATE ON dbmail_partlists
	FOR EACH ROW BEGIN
		SELECT CASE 
			WHEN (new.physmessage_id IS NOT NULL)
				AND ((SELECT id FROM dbmail_physmessage WHERE id = new.physmessage_id) IS NULL)
			THEN RAISE (ABORT, 'update on table "dbmail_partlists" violates foreign key constraint "fk_update_partlists_physmessage_id"')
		END;
	END;
DROP TRIGGER IF EXISTS fk_update2_partlists_physmessage_id;
CREATE TRIGGER fk_update2_partlists_physmessage_id
	AFTER UPDATE ON dbmail_physmessage
	FOR EACH ROW BEGIN
		UPDATE dbmail_partlists SET physmessage_id = new.id WHERE physmessage_id = OLD.id;
	END;
DROP TRIGGER IF EXISTS fk_delete_partlists_physmessage_id;
CREATE TRIGGER fk_delete_partlists_physmessage_id
	BEFORE DELETE ON dbmail_physmessage
	FOR EACH ROW BEGIN
		DELETE FROM dbmail_partlists WHERE physmessage_id = OLD.id;
	END;

ALTER TABLE dbmail_mailboxes ADD mtime DATETIME DEFAULT '0' NOT NULL;
CREATE INDEX dbmail_mailbox_4 ON dbmail_mailboxes(mtime);

CREATE TABLE dbmail_keywords (
	keyword		TEXT NOT NULL,
	message_idnr	INT NOT NULL
);
CREATE UNIQUE INDEX dbmail_keywords_1 ON dbmail_keywords(keyword,message_idnr);

DROP TRIGGER IF EXISTS fk_insert_dbmail_keywords_dbmail_messages_message_idnr;
CREATE TRIGGER fk_insert_dbmail_keywords_dbmail_messages_message_idnr
	BEFORE INSERT ON dbmail_keywords
	FOR EACH ROW BEGIN
		SELECT CASE 
			WHEN (new.message_idnr IS NOT NULL)
				AND ((SELECT message_idnr FROM dbmail_messages WHERE message_idnr = new.message_idnr) IS NULL)
			THEN RAISE (ABORT, 'insert on table "dbmail_keywords" violates foreign key constraint "fk_insert_dbmail_keywords_dbmail_messages_message_idnr"')
		END;
	END;

DROP TRIGGER IF EXISTS fk_update_dbmail_keywords_dbmail_messages_message_idnr;
CREATE TRIGGER fk_update_dbmail_keywords_dbmail_messages_message_idnr
	BEFORE UPDATE ON dbmail_keywords
	FOR EACH ROW BEGIN
		SELECT CASE 
			WHEN (new.message_idnr IS NOT NULL)
				AND ((SELECT message_idnr FROM dbmail_messages WHERE message_idnr = new.message_idnr) IS NULL)
			THEN RAISE (ABORT, 'update on table "dbmail_keywords" violates foreign key constraint "fk_update_dbmail_keywords_dbmail_messages_message_idnr"')
		END;
	END;

DROP TRIGGER IF EXISTS fk_update2_dbmail_keywords_dbmail_messages_message_idnr;
CREATE TRIGGER fk_update2_dbmail_keywords_dbmail_messages_message_idnr
	AFTER UPDATE ON dbmail_messages
	FOR EACH ROW BEGIN
		UPDATE dbmail_keywords SET message_idnr = new.message_idnr WHERE message_idnr = OLD.message_idnr;
	END;

DROP TRIGGER IF EXISTS fk_delete_dbmail_keywords_dbmail_messages_message_idnr;
CREATE TRIGGER fk_delete_dbmail_keywords_dbmail_messages_message_idnr
	BEFORE DELETE ON dbmail_messages
	FOR EACH ROW BEGIN
		DELETE FROM dbmail_keywords WHERE message_idnr = OLD.message_idnr;
	END;