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@xxxxxxxxxxx Yahoo!: VitalyBe ---------------------------(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