diff database/schema/messages.sql @ 40:44c1509055c7

improvements in message handling
author David A. Holland
date Sun, 15 Jun 2014 17:54:11 -0400
parents edf081d0b282
children e1017d556437
line wrap: on
line diff
--- a/database/schema/messages.sql	Sun Jun 15 17:28:02 2014 -0400
+++ b/database/schema/messages.sql	Sun Jun 15 17:54:11 2014 -0400
@@ -8,6 +8,7 @@
 -- (should be pruned periodically)
 CREATE TABLE rawmail (
 	id bigint		primary key default nextval('next_rawmsgid'),
+	posttime timestamp	not null,
 	data text		not null
 )
 WITHOUT OIDS;
@@ -18,13 +19,15 @@
 CREATE TABLE messages (
 	id bigint		primary key default nextval('next_msgid'),
 	pr bigint		not null references prs (id),
+	number_in_pr bigint	not null,
 	who bigint		not null references users (id),
 	parent_id bigint	null references messages (id),
 	posttime timestamp	not null,
-	contenttype text	not null,
+	mimetype text		not null,
 	body text		not null,
 
 	-- we don't keep these directly, they go into an admin log entry
+	-- XXX: we may need to keep the external message-id
 	--from_address text	not null,
 	--mail_subject text	not null,
 	--message_id text	not null,
@@ -34,20 +37,15 @@
 )
 WITHOUT OIDS;
 
+CREATE SEQUENCE next_attachid;
+
 -- for patches and mime-attachments
--- if msgid is null, attachment came with original PR
 CREATE TABLE attachments (
-	pr bigint		not null references PRs (id),
-	msgid bigint		null references messages (id),
+	id bigint		primary key default nextval('next_attachid'),
+	number_in_pr bigint	not null,
+	msgid bigint		not null references messages (id),
 	mimetype text		not null,
 	body text		not null
 )
 WITHOUT OIDS;
 
--- intended constraint:
---   SELECT messages.pr, attachments.pr
---   FROM messages, attachments
---   WHERE messages.id = attachments.msgid AND messages.pr <> attachments.pr
--- should always be empty.
--- (XXX this is gross.)
-