Re: Another plpgsql question.. - Mailing list pgsql-general

From Tom Lane
Subject Re: Another plpgsql question..
Date
Msg-id 6224.980265414@sss.pgh.pa.us
Whole thread Raw
In response to Another plpgsql question..  ("Mitch Vincent" <mitch@venux.net>)
List pgsql-general
"Mitch Vincent" <mitch@venux.net> writes:
> CREATE FUNCTION invoice_payment() RETURNS OPAQUE AS '
> BEGIN

>    UPDATE invoice_master SET total = total - NEW.amount,updated = now(),
> is_paid=(CASE WHEN (total - NEW.amount) = 0.00 THEN ''t'' ELSE ''f'' END)
> WHERE invoice_id = NEW.invoice_id;

>    RETURN NEW;

> END;
> ' LANGUAGE 'plpgsql';

> Ok, thanks for the heads up on now().. That works but I add the last part of
> the query in there and everything but the last part works.. Can I not do
> CASE WHEN statements in functions like that? That query works when I run it
> straight from psql but so did the other, so I'm wondering if the same kind
> of problem is happening here too..

It looks fine to me.  Please define "everything but the last part works"
more precisely.

            regards, tom lane

pgsql-general by date:

Previous
From: "Mitch Vincent"
Date:
Subject: plpgsql - cont'd
Next
From: "Mitch Vincent"
Date:
Subject: Re: Another plpgsql question..