From: | Jeff Eckermann <jeckermann(at)verio(dot)net> |
---|---|
To: | "'pgsql-sql(at)postgresql(dot)org'" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Use of RETURN in pl/pgsql function |
Date: | 2001-02-07 18:20:36 |
Message-ID: | 08CD1781F85AD4118E0800A0C9B8580B0948FD@NEZU |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
My script is below.
I thought (based on recent posts) that this use of RETURN is allowed, but
when trying an insert to report_table, I get the following error:
ERROR: control reaches end of trigger procedure without RETURN
I have solved several problems in getting to this point, but have now run
out of ideas. I would appreciate any pointers.
jeffe(at)kiyoko=> uname -a
FreeBSD kiyoko.la.verio.net 4.0-STABLE FreeBSD 4.0-STABLE #0: Thu Apr 27
10:44:07 CDT 2000
jeffe(at)kiyoko=> psql -V
psql (PostgreSQL) 7.0.0
Script:
drop function mrr();
create function mrr() returns opaque as '
begin
if NEW.billing_frequency = ''Monthly'' -- That's doubled single
quotes (and below as well)
then
return NEW;
else
if NEW.billing_frequency = ''Yearly''
then
NEW.rate := NEW.rate/12;
NEW.rate_override := NEW.rate_override/12;
return NEW;
else
if NEW.billing_frequency = ''Semi-Annual''
then
NEW.rate := NEW.rate/6;
NEW.rate_override := NEW.rate_override/6;
return NEW;
else
if NEW.billing_frequency = ''Quarterly''
then
NEW.rate := NEW.rate/3;
NEW.rate_override := NEW.rate_override/3;
return NEW;
end if;
end if;
end if;
end if;
end;
'language 'plpgsql';
drop trigger mrr_set_trigger on report_table;
create trigger mrr_set_trigger
before insert on report_table
for each row execute procedure mrr();
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2001-02-07 18:47:52 | Re: Use of RETURN in pl/pgsql function |
Previous Message | Brice Ruth | 2001-02-07 17:23:37 | Re: Re: [SQL] Re: SQL Join - MySQL/PostgreSQL difference? |