FOR from query - is it a bug ?

Started by Michal Szymanskialmost 20 years ago2 messagesgeneral
Jump to latest
#1Michal Szymanski
dyrex@poczta.onet.pl

I have function (below) that returns values in table format. But when
source table ( xxx.logic_list_item ) is empty I've got following
message in log:
"row number -1 is out of range 0..-1"

Is it a error message ? To be honest I do not know how to handle
situation when source table is empty, what should I return? In reposnse
I would like to see '0 rows found'

I'm using Postgress 8.1.

CREATE OR REPLACE FUNCTION freeconet.find_logic_items () RETURNS SETOF
xxx.logic_list_item AS $$
DECLARE
v_logic_item xxx.logic_list_item;
BEGIN

/* WYSZUKUJE logic_list_item w bazie */
FOR v_logic_item IN select * from xxx.logic_list_item LOOP
return next v_logic_item;
END LOOP;

return;

END;
$$ LANGUAGE 'plpgsql' VOLATILE;

select * from xxx.find_logic_items()

Michal Szymanski

#2Michael Fuhr
mike@fuhr.org
In reply to: Michal Szymanski (#1)
Re: FOR from query - is it a bug ?

On Thu, Jul 06, 2006 at 07:37:17AM -0700, Szymic1 wrote:

I have function (below) that returns values in table format. But when
source table ( xxx.logic_list_item ) is empty I've got following
message in log:
"row number -1 is out of range 0..-1"

What log? What client are you using -- psql or something else?
Warnings like this can happen if a client application calls a libpq
function like PQgetvalue() without first checking whether the query
returned any tuples.

--
Michael Fuhr