From: Matthew Mondor Date: Wed, 14 Mar 2007 19:04:34 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: http://git.pulsar-zone.net/?a=commitdiff_plain;h=6d5ccf142632295f7ad2bfa33634d3b5e13f9c9d;p=mmondor.git *** empty log message *** --- diff --git a/mmsoftware/mmmail/scripts/pgsql-tables.sql b/mmsoftware/mmmail/scripts/pgsql-tables.sql index 7ee36a6..a9537e7 100644 --- a/mmsoftware/mmmail/scripts/pgsql-tables.sql +++ b/mmsoftware/mmmail/scripts/pgsql-tables.sql @@ -1,3 +1,5 @@ +BEGIN; + CREATE LANGUAGE plpgsql; @@ -33,20 +35,6 @@ CREATE TABLE "nofrom" ( ); --- ---- Alias addresses to local boxes. ---- -CREATE TABLE "alias" ( - domain varchar(64) NOT NULL, - pattern varchar(64) NOT NULL, - box varchar(64) NOT NULL - REFERENCES box (address) - ON DELETE CASCADE, - created timestamp NOT NULL - DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (domain, pattern, box), -); - ---- --- Domains that are considered local (hosted by this server) --- CREATE TABLE "relaylocal" ( @@ -91,8 +79,8 @@ CREATE TABLE "user" ( --- CREATE TABLE "box" ( address varchar(64) NOT NULL, - user varchar(32) NOT NULL - REFERENCES user (id) + "user" varchar(32) NOT NULL + REFERENCES "user" (id) ON DELETE CASCADE, max_size bigint NOT NULL, size bigint NOT NULL @@ -100,13 +88,13 @@ CREATE TABLE "box" ( max_msgs bigint NOT NULL, msgs bigint NOT NULL DEFAULT 0, - created timestamp NOT NULL + time_created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - in timestamp NOT NULL + time_in timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - out timestamp NOT NULL + time_out timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - delete timestamp NOT NULL + time_delete timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, filter boolean NOT NULL DEFAULT 'f', @@ -114,7 +102,7 @@ CREATE TABLE "box" ( PRIMARY KEY (address) ); -CREATE FUNCTION box_delete RETURNS trigger AS $box_delete$ +CREATE FUNCTION box_delete() RETURNS trigger AS $box_delete$ BEGIN INSERT INTO box_deleted VALUES(OLD.address); RETURN NULL; @@ -155,16 +143,16 @@ CREATE TABLE "mail" ( created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, size bigint NOT NULL, - PRIMARY KEY (id), + PRIMARY KEY (id) ); CREATE INDEX mail_box_index ON mail (box); -CREATE FUNCTION mail_add RETURNS trigger AS $mail_add$ +CREATE FUNCTION mail_add() RETURNS trigger AS $mail_add$ BEGIN UPDATE box SET size = size + NEW.size, msgs = msgs + 1, - in = CURRENT_TIMESTAMP + time_in = CURRENT_TIMESTAMP WHERE address = NEW.box; RETURN NEW; END; @@ -174,12 +162,12 @@ CREATE TRIGGER mail_add BEFORE INSERT ON mail FOR EACH ROW EXECUTE PROCEDURE mail_add(); -CREATE FUNCTION mail_delete RETURNS trigger AS $mail_delete$ +CREATE FUNCTION mail_delete() RETURNS trigger AS $mail_delete$ BEGIN UPDATE box SET size = size - OLD.size, msgs = msgs - 1, - delete = CURRENT_TIMESTAMP + time_delete = CURRENT_TIMESTAMP WHERE address = OLD.box; INSERT INTO mail_deleted VALUES(OLD.file); RETURN NULL; @@ -193,11 +181,27 @@ CREATE TRIGGER mail_delete --- +--- Alias addresses to local boxes. +--- +CREATE TABLE "alias" ( + domain varchar(64) NOT NULL, + pattern varchar(64) NOT NULL, + box varchar(64) NOT NULL + REFERENCES box (address) + ON DELETE CASCADE, + created timestamp NOT NULL + DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (domain, pattern, box) +); + + + +--- --- Queue of mail to be relayed out --- CREATE TABLE "relayqueue" ( id bigserial NOT NULL, - from varchar(64) NOT NULL, + "from" varchar(64) NOT NULL, ipaddr inet NOT NULL, todomain varchar(64) NOT NULL, touser varchar(64) NOT NULL, @@ -215,7 +219,7 @@ CREATE TABLE "relayqueue" ( ); CREATE INDEX relayqueue_todomain_index ON relayqueue (todomain); -CREATE FUNCTION relayqueue_delete RETURNS trigger AS $relayqueue_delete$ +CREATE FUNCTION relayqueue_delete() RETURNS trigger AS $relayqueue_delete$ BEGIN INSERT INTO mail_deleted VALUES(OLD.file); RETURN NULL; @@ -233,7 +237,9 @@ CREATE TRIGGER relayqueue_delete --- CREATE TABLE "session" ( id char(64) NOT NULL, - expires bigint NOT NULL, + expires timestamp NOT NULL, data text NOT NULL, PRIMARY KEY (id) ); + +COMMIT;