Re: pltcl function -> plpgsql

From: Jan Wieck <janwieck(at)yahoo(dot)com>
To: guard <guard(at)ficnet(dot)net>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: pltcl function -> plpgsql
Date: 2002-01-03 21:01:02
Message-ID: 200201032101.g03L12I16689@saturn.jw.home
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

guard wrote:
> dear all
>
> I have function >>
> spi_exec "Update $1 set
> adv_amt=adv_amt-$OLD(adv_amt)+$OLD(gadv_amt) where $2=''$OLD($2)'' "
>
> how to change plpgsql code
>
> ps. $1 a variable

It would be nice to see the entire function declaration, or
at least the CREATE FUNCTION part, and not just one single
statement out of it's body.

Second it looks alot like an AFTER UPDATE trigger to me. In
that case, I would suggest changing it into a BEFORE UPDATE
one and do the modification directly in the NEW.adv_amt
field. The way you're doing it now add's one more dead tuple
to the table.

The above is usually achieved in PL/pgSQL with the EXECUTE
syntax. But I would discourage from that and suggest
creating separate functions per table/attribute pair, because
EXECUTE (as well as spi_exec in Tcl) statements are not
cacheable.

Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Stephan Szabo 2002-01-03 21:44:35 Re: How to union tables and have a field with UNIQUE constraint?
Previous Message Tom Lane 2002-01-03 20:51:37 Re: How to union tables and have a field with UNIQUE constraint?