Re: why am I told "subquery must return only one column"

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: John Gunther <postgresql(at)bucksvsbytes(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: why am I told "subquery must return only one column"
Date: 2008-05-05 17:01:04
Message-ID: 749.1210006864@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

John Gunther <postgresql(at)bucksvsbytes(dot)com> writes:
> and trying to create a second function mstr that calls the sub function
> using a select statement as sub's argument:
> create function mstr(text,text) returns int as 'select sub((select
> 5,6,7,8)::m);' language sql;

I think you want 'select sub(row(5,6,7,8)::m)'

> My question is this:
> (select 5,6,7,8)::m returns a single entity of composite type m

No, the select returns four columns, and trying to cast it after the
fact doesn't change that. We might at some point try to support the
above syntax, but I'm not in a big hurry considering that it's not
required by the SQL spec --- the row() syntax is what the spec says
you use to construct a composite value.

regards, tom lane

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message John Gunther 2008-05-05 18:10:35 Re: why am I told "subquery must return only one column" (SELECTing values to be used as function arguments)
Previous Message John Gunther 2008-05-05 14:53:31 why am I told "subquery must return only one column"