From: | Jie Liang <jliang(at)ipinc(dot)com> |
---|---|
To: | Jeff Eckermann <jeckermann(at)verio(dot)net> |
Cc: | "'pgsql-sql(at)postgresql(dot)org'" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Use of RETURN in pl/pgsql function |
Date: | 2001-02-07 22:32:39 |
Message-ID: | Pine.BSF.4.10.10102071307020.17745-100000@tidal.ipinc.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
You may try like:
if block
end if;
return somefakething;
no matter this return can be reached or not.
then compile will be no problem.
Jie LIANG
Internet Products Inc.
10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873
jliang(at)ipinc(dot)com
www.ipinc.com
On Wed, 7 Feb 2001, Jeff Eckermann wrote:
> 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 | Michael Miyabara-McCaskey | 2001-02-07 22:41:41 | FATAL 1: btree: items are out of order (leftmost 0, stack 48, update 2) |
Previous Message | Stephan Szabo | 2001-02-07 22:02:15 | Re: Bug reports for 7.1 beta? |