Returning 0 rows from a PL/PGSQL

Поиск
Список
Период
Сортировка
От Vitaly Belman
Тема Returning 0 rows from a PL/PGSQL
Дата
Msg-id fa96e3c605021915595ad1090c@mail.gmail.com
обсуждение исходный текст
Ответы Re: Returning 0 rows from a PL/PGSQL  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
Список 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 по дате отправления:

Предыдущее
От: Jonel Rienton
Дата:
Сообщение: Re: PGSQL 8.0.1 Win 2K Installation Problem
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: quoting internal variable names