Re: is 8.4 array_agg() supposed to work with array values?
От | Todd A. Cook |
---|---|
Тема | Re: is 8.4 array_agg() supposed to work with array values? |
Дата | |
Msg-id | 497746D4.1050606@blackducksoftware.com обсуждение исходный текст |
Ответ на | Re: is 8.4 array_agg() supposed to work with array values? (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-hackers |
Peter Eisentraut wrote: > On Monday 19 January 2009 23:22:21 Todd A. Cook wrote: >> The docs at >> http://developer.postgresql.org/pgdocs/postgres/functions-aggregate.html >> don't prohibit using array values with array_arg(), so I assumed that it >> would work. > >> test=> select array_agg(v.a) from (values (array[1,2]), (array[3,4])) as >> v(a) ; ERROR: could not find array type for data type integer[] > > Yeah ... This is one of the weirdnesses of the PostgreSQL array > implementation. integer[] and integer[][] etc. are actually the same type, > just using a different number of dimensions internally. This would work much > better if integer[][] where "array of integer[]", in the same way as > integer[] is "array of integer", in the way C deals with arrays. This is > also a main reason why composite types and arrays don't mix orthogonally; > there is no way to represent that in the system catalogs. To get back to > your question, as far as array_agg() itself is concerned, it would probably > work, but the rest of the sytem doesn't deal with it very well. You will > probably be able to find a number of other places that break when trying to > derive the array type from something that is already an array. Thanks for the clarification. -- todd
В списке pgsql-hackers по дате отправления: