Help with trigger - Mailing list pgsql-general

From Michael Satterwhite
Subject Help with trigger
Date
Msg-id 201012271157.15216.michael@weblore.com
Whole thread Raw
Responses Re: Help with trigger  (Gary Chambers <gwchamb@gwcmail.com>)
Re: Help with trigger  (Guillaume Lelarge <guillaume@lelarge.info>)
Re: Help with trigger  (Richard Broersma <richard.broersma@gmail.com>)
List pgsql-general
I'm new to PostgreSQL, but have worked with other databases. I'm trying to
write a trigger to default a timestamp column to a fixed interval before
another. The test setup is as follows:

create table test
(    date1 timestamp,
    date2 timestamp
);

create or replace function t_listing_startdate() returns trigger as
$t_listing_startdate$
    begin
        if NEW.date2 is null then
            NEW.date2 := NEW.date1 - interval '7 day';
        end if;
        return NEW;
    end;
$t_listing_startdate$ LANGUAGE plpgsql;

CREATE TRIGGER t_listing_startdate before insert or update on test
    for each row execute procedure t_listing_startdate();

Insert into test(date1) values('May 4, 2012');
INSERT 0 1
test=# select * from test;
        date1        | date2
---------------------+-------
 2012-04-27 00:00:00 |
(1 row)

I'm obviously missing something ... and probably something obvious. Why is
date2 still null?

Thanks much
---Michael

pgsql-general by date:

Previous
From: hubert depesz lubaczewski
Date:
Subject: Problem with restoring from backup on 9.0.2
Next
From: Gary Chambers
Date:
Subject: Re: Help with trigger