On Mon, 26 Mar 2001, Stephan Szabo wrote:
>
> > create function updateCat() returns opaque as '
> > declare
> > rec record;
> > rename new to cat;
> > rename old to ct;
> > maxlen integer;
> >
> > begin
> > if tg_op = ''INSERT'' and cat.category is null then
> > raise exception ''You are missing entry for category field'';
> >
> > else
> > if cat.display then
> > maxlen:= addCount(cat.category);
> > return cat;
> > else
> > return cat;
> > end if;
> > end if;
> > if tg_op = ''DELETE''then
> > maxlen:= delCount(ct.category);
> > return ct;
> > end if;
> >
> > end;
> > ' language 'plpgsql';
>
> I think you want your if blocks to be more like:
> if tg_op = ''INSERT''
> if cat.category is null
> (raise exception)
> else
> (do insert stuff)
> end if
> end if
> if tg_op = ''DELETE''
> (do delete stuff)
> end if
>
> I think you're currently going to get into the
> insert stuff on both inserts where it isn't
> null and deletes (since in both cases the
> and will be false).
You probably want to handle UPDATEs as well.. make sure you plan for this
too.