2010/11/18 Robert Haas <robertmh...@gmail.com>: > On Thu, Nov 18, 2010 at 10:24 AM, Merlin Moncure <mmonc...@gmail.com> wrote: >> On Thu, Nov 18, 2010 at 12:47 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: >>> Merlin Moncure <mmonc...@gmail.com> writes: >>>> On Wed, Nov 17, 2010 at 7:08 PM, Jaime Casanova <ja...@2ndquadrant.com> >>>> wrote: >>>>> i will start the review of this one... but before that sorry for >>>>> suggesting this a bit later but about using UNNEST as part of the >>>>> sintax? >>> >>>> Does for-in-array do what unnset does? >>> >>> Yes, which begs the question of why bother at all. AFAICS this patch >>> simply allows you to replace >>> >>> for x in select unnest(array_value) loop >>> >>> with >>> >>> for x in unnest array_value loop >>> >>> (plus or minus a parenthesis or so). I do not think we need to add a >>> bunch of code and create even more syntactic ambiguity (FOR loops are >>> already on the hairy edge of unparsability) to save people from writing >>> "select". >> >> Pavel's performance argument is imnsho valid. arrays at present are >> the best way to pass data around functions and any optimizations here >> are very welcome. Given that, is there any way to mitigate your >> concerns on the syntax side? > > Can we get the performance benefit any other way? I hate to think > that it will still be slow for people using the already-supported > syntax. >
I afraid so other ways are more difficult with deeper impacts on plpgsql executor. what is a slow: a) repeated detoasting - access with subscripts - maybe detoasted values can be cached? b) evaluation of SRF expression - maybe call of SRF function can be simple expression, c) faster evaluation ro query The most important is @a. Only a few people uses a FOR IN SELECT UNNEST form now. Probably not optimizable on PLpgSQL level is form FOR IN SELECT * FROM UNNEST. FOR IN ARRAY doesn't impacts on expression executing - this patch is just simple and isolated. Pavel > -- > Robert Haas > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers