Received: from maia.hub.org (unknown [200.46.208.211]) by mail.postgresql.org (Postfix) with ESMTP id 87C5463368C for ; Fri, 26 Feb 2010 05:43:15 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.208.211]) (amavisd-maia, port 10024) with ESMTP id 59989-06 for ; Fri, 26 Feb 2010 09:43:00 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from moon.antora.ru (moon.antora.ru [89.111.189.180]) by mail.postgresql.org (Postfix) with ESMTP id A9C5763333F for ; Fri, 26 Feb 2010 05:43:04 -0400 (AST) Envelope-to: pgsql-sql@postgresql.org Received: from moon.inner.space ([10.1.1.5] helo=moon.antora.ru) by moon.antora.ru with esmtp (Exim 4.67) (envelope-from ) id 1Nkwir-0002sm-RD for pgsql-sql@postgresql.org; Fri, 26 Feb 2010 12:43:01 +0300 Received: from [192.168.1.107] [85.172.37.247] by moon.antora.ru (Axigen) with (DHE-RSA-AES256-SHA encrypted) ESMTPSA id 0347E7; Fri, 26 Feb 2010 12:43:01 +0300 Message-ID: <4B87976C.4020808@bankir.ru> Date: Fri, 26 Feb 2010 12:42:04 +0300 From: silly sad User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5) Gecko/20100111 Thunderbird/3.0 MIME-Version: 1.0 To: "A. Kretschmer" CC: pgsql-sql@postgresql.org Subject: Re: what exactly is a query structure? References: <4B876F23.8040401@bankir.ru> <20100226071900.GD11413@a-kretschmer.de> In-Reply-To: <20100226071900.GD11413@a-kretschmer.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 4bd2f8875485f09ff8175d8846190d66 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.205 tagged_above=-10 required=5 tests=AWL=0.204, BAYES_50=0.001 X-Spam-Level: X-Archive-Number: 201002/98 X-Sequence-Number: 33697 On 02/26/10 10:19, A. Kretschmer wrote: > In response to silly sad : >> hello. >> >> Postgresql 8.3.9 >> >> CREATE TYPE usr_secrets AS (login TEXT, pass TEXT, shop_pass TEXT); >> >> CREATE OR REPLACE FUNCTION get_noobs () RETURNS SETOF usr_secrets AS $$ >> BEGIN >> RETURN QUERY SELECT login, '*' as pass, shop_pass FROM noob; >> RETURN; >> END; >> $$ LANGUAGE plpgsql SECURITY DEFINER; >> >> SELECT * from get_noobs(); >> >> And we have the following error >> >> ERROR: structure of query does not match function result type > > Wild guess: your table noob has an other structure as expected, in > particular login and/or shop_pass are not TEXT. they are texts. if we substitute constant '*' with a text field or even a subselect, the error disappear.