PL/PGSQL question - Mailing list pgsql-general

From Jean-Christian Imbeault
Subject PL/PGSQL question
Date
Msg-id 3E279E1C.9060309@mega-bucks.co.jp
Whole thread Raw
Responses Re: PL/PGSQL question
Re: PL/PGSQL question
List pgsql-general
I wrote the following plpgsql function. The problem I have is that if no
rows are found my function returns NULL whereas it should be returning 0.

Where have I erred?

create or replace function zoqoo_total_sales(integer) returns integer as '
   declare total_sales integer := 0;
   begin
     select into total_sales sum(price)
     from invoice_li, invoices WHERE
       shop_id=$1 AND not invoice_li.cancelled
       AND shipped AND invoices.id=invoice_id
       AND not invoices.cancelled AND payment_rcvd;
     IF NOT FOUND THEN
       RETURN 0;
     END IF;
     RETURN total_sales;
   end;
' language 'plpgsql' with (iscachable);


JC=# select zoqoo_total_sales(1);
  zoqoo_total_sales
-------------------

(1 row)

Thanks,

Jc


pgsql-general by date:

Previous
From: trainee12@yeah.net
Date:
Subject: Re: varchar and spaces problem..
Next
From: Tom Lane
Date:
Subject: Re: PL/PGSQL question