Re: is it me or trigger side effects - Mailing list pgsql-sql

From Cedar Cox
Subject Re: is it me or trigger side effects
Date
Msg-id Pine.LNX.4.21.0103262242100.3439-100000@nanu.visionforisrael.com
Whole thread Raw
In response to Re: is it me or trigger side effects  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-sql
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.



pgsql-sql by date:

Previous
From: Cedar Cox
Date:
Subject: Re: Help
Next
From: Tom Lane
Date:
Subject: Re: Function Vanished