*** empty log message ***
authorMatthew Mondor <mmondor@pulsar-zone.net>
Wed, 14 Mar 2007 19:04:34 +0000 (19:04 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Wed, 14 Mar 2007 19:04:34 +0000 (19:04 +0000)
mmsoftware/mmmail/scripts/pgsql-tables.sql

index 7ee36a6..a9537e7 100644 (file)
@@ -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;