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

Started by Pavel Stehuleover 16 years ago7 messages
#1Pavel Stehule
pavel.stehule@gmail.com

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

#2Martijn van Oosterhout
kleptog@svana.org
In reply to: Pavel Stehule (#1)
Re: plpgsql: support identif%TYPE[], (from ToDo)

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/

Show quoted text

Please line up in a tree and maintain the heap invariant while
boarding. Thank you for flying nlogn airlines.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavel Stehule (#1)
Re: plpgsql: support identif%TYPE[], (from ToDo)

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

#4Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tom Lane (#3)
Re: plpgsql: support identif%TYPE[], (from ToDo)

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

Show quoted text

                       regards, tom lane

#5Robert Haas
robertmhaas@gmail.com
In reply to: Pavel Stehule (#4)
Re: plpgsql: support identif%TYPE[], (from ToDo)

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

#6Pavel Stehule
pavel.stehule@gmail.com
In reply to: Robert Haas (#5)
Re: plpgsql: support identif%TYPE[], (from ToDo)

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

Show quoted text

...Robert

#7Pavel Stehule
pavel.stehule@gmail.com
In reply to: Martijn van Oosterhout (#2)
Re: plpgsql: support identif%TYPE[], (from ToDo)

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

Show quoted text

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-----