Search Postgresql Archives

Re: Returning 0 rows from a PL/PGSQL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 20 Feb 2005, Vitaly Belman wrote:

> I have the following plpgsql function:
>
> CREATE OR REPLACE FUNCTION public."temp"(int4)
>   RETURNS public.books AS
> $BODY$DECLARE
> 	old_book books%rowtype;
> BEGIN
> 	select * into old_book from books
> 	where book_id = var_book_id;
>
> 	IF FOUND = false THEN
> 		return null;
> 	ELSE
> 		return old_book;
> 	END IF;
> END;$BODY$
>   LANGUAGE 'plpgsql' VOLATILE;
>
> If the function finds a book with the given ID, it returns its row, if
> it doesn't, it should return no rows at all (naturally it is
> simplified version of what I need). In practice, however, it returns
> either a regular row, or a regular row with all fields set to NULL.

I think you'd need to make the function a set returning one in order to
potentially return no rows (which I think would involve making it returns
setof public.books, doing a return next old_book when found=true and
nothing in the false case and putting a return at the end).


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
      message can get through to the mailing list cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux