]> pd.if.org Git - newsd/blobdiff - schema.sql
Let database figure out close time for connection.
[newsd] / schema.sql
index 826bc855f545cb53520425af0332c7dceff634d9..769f0e5e23ad44cdbd6a89196dcde43a99a4956c 100644 (file)
@@ -330,11 +330,19 @@ begin
 
        begin
                -- TODO improve this regular expression
-               NEW.expires = regexp_replace(header_value(header, 'Expires'),E'\\([^\\)]*\\)', ' ')::timestamptz;
+               NEW.expires = regexp_replace(header_value(NEW.header, 'Expires'),E'\\([^\\)]*\\)', ' ')::timestamptz;
        exception
                when OTHERS then NEW.expires = NULL;
        end;
 
+       -- TODO if date is null?
+       begin
+               -- TODO improve this regular expression
+               NEW.date = regexp_replace(header_value(NEW.header, 'Date'),E'\\([^\\)]*\\)', ' ')::timestamptz;
+       exception
+               when OTHERS then NEW.date = NULL;
+       end;
+
        if NEW.header is null then
                raise exception 'null header b';
        end if;
@@ -363,13 +371,14 @@ create or replace function xpost_trigger() returns trigger as $$
 declare
        hiwater integer;
 begin
-       select high + 1 from newsgroups where newsgroup = NEW.newsgroup
-       for update into hiwater;
+       update newsgroups set high = high + 1
+               where newsgroup = NEW.newsgroup returning high into hiwater;
+
        NEW.number := hiwater;
-       update newsgroups set high = high + 1 where newsgroup = NEW.newsgroup;
        return NEW;
 end;
 $$ language 'plpgsql';
+
 create trigger highwater before insert on xpost
        for each row execute procedure xpost_trigger();