Returning 0 rows from a PL/PGSQL - Mailing list pgsql-general

From Vitaly Belman
Subject Returning 0 rows from a PL/PGSQL
Date
Msg-id fa96e3c605021915595ad1090c@mail.gmail.com
Whole thread Raw
Responses Re: Returning 0 rows from a PL/PGSQL
List pgsql-general
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.

So if in my PHP code I have:

$rs = pg_query("select * from temp(-60)");
pg_num_rows($rs);

It keeps printing 1 even if the ID I pass doesn't exist. What's my remedy?

Thanks

--
 ICQ: 1912453
 AIM: VitalyB1984
 MSN: tmdagent@hotmail.com
 Yahoo!: VitalyBe

pgsql-general by date:

Previous
From: Jonel Rienton
Date:
Subject: Re: PGSQL 8.0.1 Win 2K Installation Problem
Next
From: Peter Eisentraut
Date:
Subject: Re: quoting internal variable names