Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types
От | Pavel Stehule |
---|---|
Тема | Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types |
Дата | |
Msg-id | CAFj8pRDfyokA6XuScMVeCGMVT4WLjaRdaEuLcYgObqTiEFn5Ew@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for
composite types
|
Список | pgsql-hackers |
2016-01-18 22:48 GMT+01:00 Robert Haas <robertmhaas@gmail.com>:
On Mon, Jan 18, 2016 at 4:35 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>> 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.
>
> It doesn't use reserved worlds.
OK - keywords, then.
>> 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.
>
> what you propose for syntax for taking a element of array?
No idea.
the syntax for "array from" is natural, but for any other is hard. So it is reason, why I used text form. Using Oracle's pattern source%operation allows to use nonreserved keywords. Probably any text can be there. The keywords isn't necessary (not tested).
>> 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.
>
>
> I invite any ideas, but currently used notation is only in direction
> type->array. The working with symbols looks more difficult, than using words
> (in design area).
>
> More - the textual form is more near to our system of polymorphics types:
> anyelement, anyarray, ... We have not anyelement[]
True, but this is hardly a straightforward extension of what we have
today either.
It is, but sometime the polymorphic types can help.
The proposed feature/syntax has sense primary for polymorphic types. It should to follow our polymorphic types. The primary pair is "anyarray","anyelement" -> "arraytype","elemementtype".
If you don't use polymorphic parameters in plpgsql, then proposed feature can look like useless.
Regards
Pavel
В списке pgsql-hackers по дате отправления: