ERROR: control reached end of function without RETURN

Started by Ignacio Colmeneroabout 21 years ago3 messagesgeneral
Jump to latest
#1Ignacio Colmenero
ignacio.colmenero@micotan.com

Hi all.

I created a function, using EMS:

CREATE OR REPLACE FUNCTION "geo_schema"."search_geo" () RETURNS SETOF
varchar AS

$body$

declare x_longlat cursor for select long_lat from h2s ;

declare var_longlat public.geometry ;

declare x_id varchar ;

begin

open x_longlat ;

<<loop1>>

loop

fetch x_longlat into var_longlat ;

if not found then

close x_longlat ;

exit ;

end if ;

select field_id from geo_table

where within(var_longlat, geo_polygon) limit 1 into x_id ;

if x_id <> '' then

return next x_id ;

end if ;

end loop ;

end ;

$body$

LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

When I debug it (using EMS tools), it works fine, and I get 73 rows, but
when I run it like:

select * from search_geo() ;

I get the error: ERROR: control reached end of function without RETURN

What can be wrong?

TIA

Ignacio.

-----------------------------------------------

Ignacio Colmenero

Software Development

Micotan Software Company Ltd.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ignacio Colmenero (#1)
Re: ERROR: control reached end of function without RETURN

"Ignacio Colmenero" <ignacio.colmenero@micotan.com> writes:

I get the error: ERROR: control reached end of function without RETURN

What can be wrong?

You don't have a RETURN statement.

regards, tom lane

#3Ignacio Colmenero
ignacio.colmenero@micotan.com
In reply to: Tom Lane (#2)
Re: ERROR: control reached end of function without RETURN

Thanks Tom.
I didn't know I needed a RETURN statement at the end. I assumed that the
"return next" statement would be enough. It works fine now.

-----------------------------------------------
Ignacio Colmenero
Software Development
Micotan Software Company Ltd.

-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Tom Lane
Sent: February 11, 2005 12:28 PM
To: Ignacio Colmenero
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] ERROR: control reached end of function without RETURN

"Ignacio Colmenero" <ignacio.colmenero@micotan.com> writes:

I get the error: ERROR: control reached end of function without RETURN

What can be wrong?

You don't have a RETURN statement.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq