Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types - Mailing list pgsql-hackers

From Robert Haas
Subject Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types
Date
Msg-id CA+TgmobqT_wn_m+2-hBc9Tu2-CM3BeBE5394LCHTs2R15jyi+A@mail.gmail.com
Whole thread Raw
In response to Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
On Mon, Jan 18, 2016 at 3:51 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:
> BTW are we all agreed that enabling
>   foo%ARRAYTYPE
> and
>   foo%ELEMENTYPE
> in plpgsql's DECLARE section is what we want for this?

I know that Oracle uses syntax of this general type, but I've always
found it ugly.  It's also pretty non-extensible.  You could want
similar things for range types and any other container types we might
get in the future, but clearly adding new reserved words for each one
is no good.

One idea that occurs to me is: If you can DECLARE BAR FOO%TYPE, but
then you want to make BAR an array of that type rather than a scalar,
why not write that as DECLARE BAR FOO%TYPE[]?  That seems quite
natural to me.

I think the part of this patch that makes %TYPE work for more kinds of
types is probably a good idea, although I haven't carefully studied
exactly what it does.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Tsvector editing functions
Next
From: Andrew Dunstan
Date:
Subject: Re: Removing service-related code in pg_ctl for Cygwin