Thread: plpgsql: support identif%TYPE[], (from ToDo)

plpgsql: support identif%TYPE[], (from ToDo)

From
Pavel Stehule
Date:
Hello

I would to solve some points from ToDo. I began with TYPE [] support.
I thing, so this should be relative simple, but there are one issue.

There are syntax for declare array from scalar type -

create or replace function x(a int)
returns ... as $$
declare f a%type[] <--
begin ...

but there are not syntax for inversion - scalar from array.
Theoretically we could to define variable with same type (array) and
everywhere work with first element. Or we should to define some
syntax:

My first idea is using word element:

create or replace function x(a int[])
...
declare f a%element;
begin
...

any ideas?

regards
Pavel


Re: plpgsql: support identif%TYPE[], (from ToDo)

From
Martijn van Oosterhout
Date:
On Tue, Jul 28, 2009 at 10:53:08PM +0200, Pavel Stehule wrote:
> Hello
>
> I would to solve some points from ToDo. I began with TYPE [] support.
> I thing, so this should be relative simple, but there are one issue.

<snip>

> My first idea is using word element:
>
> create or replace function x(a int[])
> ...
> declare f a%element;
> begin
> ...

I would have thought:

declare f a[0]%type;

as in: the type of a[0]. Perhaps a[]%type but that seems less natural.

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Please line up in a tree and maintain the heap invariant while
> boarding. Thank you for flying nlogn airlines.

Re: plpgsql: support identif%TYPE[], (from ToDo)

From
Tom Lane
Date:
Pavel Stehule <pavel.stehule@gmail.com> writes:
> I would to solve some points from ToDo. I began with TYPE [] support.

plpgsql's %type support is a crock that's going to have to be rewritten
from the ground up as soon as we consolidate the lexer with the core.
I wouldn't suggest spending any time in that area now.
        regards, tom lane


Re: plpgsql: support identif%TYPE[], (from ToDo)

From
Pavel Stehule
Date:
2009/7/29 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> I would to solve some points from ToDo. I began with TYPE [] support.
>
> plpgsql's %type support is a crock that's going to have to be rewritten
> from the ground up as soon as we consolidate the lexer with the core.
> I wouldn't suggest spending any time in that area now.

ook

Pavel

>
>                        regards, tom lane
>


Re: plpgsql: support identif%TYPE[], (from ToDo)

From
Robert Haas
Date:
On Wed, Jul 29, 2009 at 1:44 AM, Pavel Stehule<pavel.stehule@gmail.com> wrote:
> 2009/7/29 Tom Lane <tgl@sss.pgh.pa.us>:
>> Pavel Stehule <pavel.stehule@gmail.com> writes:
>>> I would to solve some points from ToDo. I began with TYPE [] support.
>>
>> plpgsql's %type support is a crock that's going to have to be rewritten
>> from the ground up as soon as we consolidate the lexer with the core.
>> I wouldn't suggest spending any time in that area now.
>
> ook

There's also the fact that we still have almost half the patches in
this CommitFest that have yet to be closed out.  If you're looking for
something to do....

...Robert


Re: plpgsql: support identif%TYPE[], (from ToDo)

From
Pavel Stehule
Date:
2009/7/29 Robert Haas <robertmhaas@gmail.com>:
> On Wed, Jul 29, 2009 at 1:44 AM, Pavel Stehule<pavel.stehule@gmail.com> wrote:
>> 2009/7/29 Tom Lane <tgl@sss.pgh.pa.us>:
>>> Pavel Stehule <pavel.stehule@gmail.com> writes:
>>>> I would to solve some points from ToDo. I began with TYPE [] support.
>>>
>>> plpgsql's %type support is a crock that's going to have to be rewritten
>>> from the ground up as soon as we consolidate the lexer with the core.
>>> I wouldn't suggest spending any time in that area now.
>>
>> ook
>
> There's also the fact that we still have almost half the patches in
> this CommitFest that have yet to be closed out.  If you're looking for
> something to do....
>

I am bad man for review and I understand little bit only to plpgsql. I
am preparing plan for next commitfest.

Pavel

> ...Robert
>


Re: plpgsql: support identif%TYPE[], (from ToDo)

From
Pavel Stehule
Date:
2009/7/28 Martijn van Oosterhout <kleptog@svana.org>:
> On Tue, Jul 28, 2009 at 10:53:08PM +0200, Pavel Stehule wrote:
>> Hello
>>
>> I would to solve some points from ToDo. I began with TYPE [] support.
>> I thing, so this should be relative simple, but there are one issue.
>
> <snip>
>
>> My first idea is using word element:
>>
>> create or replace function x(a int[])
>> ...
>> declare f a%element;
>> begin
>> ...
>
> I would have thought:
>
> declare f a[0]%type;
>
> as in: the type of a[0]. Perhaps a[]%type but that seems less natural.
>

It's clean so a[0] means element of array, but why zero. PostgreSQL
array should to start from any int value :(. And this syntax is little
bit difficult parserable.

What do you thing about:

declare f array of a%type; x element of f%type;

??

regards
Pavel


> Have a nice day,
> --
> Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
>> Please line up in a tree and maintain the heap invariant while
>> boarding. Thank you for flying nlogn airlines.
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iD8DBQFKb2lxIB7bNG8LQkwRApwuAJ4snkAtixsMa2ju8r0jYYIH2hIJ6ACeOVQj
> /oiBdGmX8zQddwmwsvjLnOM=
> =xtg2
> -----END PGP SIGNATURE-----
>
>