Thread: Digging gram.y

Digging gram.y

From
Teodor Sigaev
Date:
In gram.y
Typename:   SimpleTypename opt_array_bounds                {                    $$ = $1;
$$->arrayBounds= $2;                }            | SETOF SimpleTypename opt_array_bounds                {
    $$ = $2;                    $$->arrayBounds = $3;                    $$->setof = TRUE;                }
 

Typename is a generic name of type and it used in many places in gram.c, but 
AFAIK the single place with SETOF is a function's RETURNS declaration. So there 
is many checks about SETOF.  May I eliminate SETOF from Typename and leave it 
only for RETURNS?



-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 


Re: Digging gram.y

From
Tom Lane
Date:
Teodor Sigaev <teodor@sigaev.ru> writes:
> May I eliminate SETOF from Typename and leave it 
> only for RETURNS?

Why do you want to?

I think the reason it's in Typename is the assumption that in future
we would try to extend the applicability of SETOF, not restrict it.
For instance I can see reasons for wanting SETOF on a function's input
parameter (to pass it a whole table or select result in one call).
        regards, tom lane


Re: Digging gram.y

From
Teodor Sigaev
Date:
> Why do you want to?

Just simplify.

> For instance I can see reasons for wanting SETOF on a function's input
> parameter (to pass it a whole table or select result in one call).

I see. But Typename is used for table's definition for example. I can't imagine 
column "setof text".


-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 


Re: Digging gram.y

From
Tom Lane
Date:
Teodor Sigaev <teodor@sigaev.ru> writes:
>> Why do you want to?

> Just simplify.

I think you'd just be moving the complexity somewhere else.
        regards, tom lane


Re: Digging gram.y

From
David Fetter
Date:
On Wed, Oct 04, 2006 at 09:04:11PM +0400, Teodor Sigaev wrote:
> >Why do you want to?
> 
> Just simplify.
> 
> >For instance I can see reasons for wanting SETOF on a function's
> >input parameter (to pass it a whole table or select result in one
> >call).
> 
> I see. But Typename is used for table's definition for example. I
> can't imagine column "setof text".

It's part of the SQL:2003 standard as MULTISET :)

Cheers,
D
-- 
David Fetter <david@fetter.org> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666                             Skype: davidfetter

Remember to vote!