X-Original-To: pgsql-general-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 3B978535DE for ; Thu, 5 May 2005 11:28:00 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 72035-01 for ; Thu, 5 May 2005 14:27:55 +0000 (GMT) Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.197]) by svr1.postgresql.org (Postfix) with ESMTP id D71585539E for ; Thu, 5 May 2005 11:27:54 -0300 (ADT) Received: by wproxy.gmail.com with SMTP id 68so709826wri for ; Thu, 05 May 2005 07:27:59 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=QdFYwSx4wXOKMB9ikc2dxJvxVvf3zJRhYS/AGPO6WTJskKKaHStxDth332gtV7P9/jWVHWomvNbvZQvabOZ+fZvVeyr9UA4SX/WBsxA93BDFmj7hoohf4o9jsBmBHRod3yMl3zyTn+kJLSy5LOAk/tgSDWEAmWvojrXSMOeVEQs= Received: by 10.54.40.63 with SMTP id n63mr22519wrn; Thu, 05 May 2005 07:27:59 -0700 (PDT) Received: by 10.54.72.2 with HTTP; Thu, 5 May 2005 07:27:58 -0700 (PDT) Message-ID: Date: Thu, 5 May 2005 15:27:58 +0100 From: =?ISO-8859-1?Q?Listas_Evandro_=28N=E3o_use_este_en?= =?ISO-8859-1?Q?dere=E7o_para_mensagens_pessoais=29?= Reply-To: =?ISO-8859-1?Q?Listas_Evandro_=28N=E3o_use_este_en?= =?ISO-8859-1?Q?dere=E7o_para_mensagens_pessoais=29?= To: pgsql Subject: Select of a function that returns a array Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.398 tagged_above=0 required=5 tests=DNS_FROM_RFC_ABUSE, RCVD_BY_IP X-Spam-Level: X-Archive-Number: 200505/240 X-Sequence-Number: 77588 Hi guys I'm trying to figure out a way to make this select work even for a wrong va= lue: select mean_and_variancepop('golf', 'temperature'); or=20 select CAST (mean_and_variancepop('golf', 'temperature') AS float(2)); This function return an array the function is: CREATE or replace FUNCTION mean_and_variancepop(var_table varchar, var_col varchar) RETURNS float(2) AS $$ DECLARE curs refcursor; a float; b float; c float; retvals float[2];=09 sum float:=3D0;=09=09 BEGIN open curs FOR EXECUTE 'SELECT ' || quote_ident(var_col) || ' FROM ' || quote_ident(var_table); b:=3D0; LOOP -- some computations FETCH curs INTO a; =20 IF NOT FOUND THEN EXIT; -- exit loop END IF; b:=3Db+1; c:=3Da; sum:=3D sum + c; END LOOP; CLOSE curs; retvals[0]:=3D sum / b;=09=09 retvals[1] :=3D4;=09=09=09 RETURN retvals; END; $$ LANGUAGE plpgsql; Thanks -Jr