2010/12/17 Tom Lane <t...@sss.pgh.pa.us>: > Pavel Stehule <pavel.steh...@gmail.com> writes: >> 2010/12/17 Tom Lane <t...@sss.pgh.pa.us>: >>> Furthermore, it's underspecified: who's to say how many dimensions of >>> the array are supposed to get sliced off? There's no reasonable place >>> to extend this syntax to specify that. It will also be inconsistent >>> for "foreach scalar in array" to iterate element-by-element no matter >>> how many dimensions array has, while "foreach array in array" does >>> something different from that. > >> it reduce just one dimension. Now I expect, and I think so it is >> correct, so user knows a used dimension. Just doesn't know a data. So >> user can to decide and fill correct type. The design strictly remove >> any U.I. from design. So using a incorect type is bug. > > In other words, your proposal is error-prone to use, restricted in what > it can do, and incapable of being extended later without breaking > things. If there is some redeeming social value to set against those > problems, I'm not seeing it. > > What I think we should have is > > FOREACH scalar-variable IN ARRAY array-expression > > which iterates element by element regardless of how many dimensions the > array has. Then there should be some other syntax for iterating over > slices, and we should give some thought to being able to specify how > "deep" the slice is. I can definitely think of use cases for pulling > off either 1 dimension at a time (so you get vectors) or N-1 dimensions > at a time, and it's not out of the realm of reason to want intermediate > cases.
I am not against > > Maybe > > FOR_EACH scalar-variable IN ARRAY array-expression > > FOR_SLICE array-variable [DEPTH n] IN ARRAY array-expression > > Or I guess you could use the same leading keyword if you make the depth > specification mandatory for the slice case: > > FOREACH scalar-variable IN ARRAY array-expression > > FOREACH array-variable SLICE n IN ARRAY array-expression > I prefer FOREACH keyword. The syntax can be enhanced and I like a talk about it. I am not sure if SLICE is good keyword for this, but I don't know better - hope so native speakers can select well. I could to use maybe "DIMENSIONS" ? Regards Pavel > That might be a better idea since it avoids the inevitable argument over > whether the default slice depth should be 1 dimension or N-1 dimensions. > > regards, tom lane > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers