Brendan Jurd <dire...@gmail.com> wrote: > On 6 April 2013 01:59, Kevin Grittner <kgri...@ymail.com> wrote: >> Brendan Jurd <dire...@gmail.com> wrote: >> >>> The language specifically allows for zero elements, and does not >>> contemplate multiple dimensions. >> >> I don't remember anything in the spec which would prohibit the data >> type of an array element from itself being an array, however. > > Indeed it does not prohibit nesting arrays inside other arrays, but > the multidim arrays that Postgres allows you to create are not the > same thing as nested arrays. > > I believe that a purely to-spec implementation would allow you to make > an array-of-int-arrays, but since each element is its own separate > collection there would be no requirement that they have the same > cardinality as each other. > > For example, ARRAY[[1], [2,3], [4,5,6]] is a valid collection per the > spec, but Postgres won't let you create this, because Postgres is > trying to create a 2-D matrix of integers, rather than a collection of > collections of integers. > > The inability to extend multidim arrays in Postgres is another > manifestation of this matrix-oriented design. Extending nested > collections is a no-brainer. Extending matrices while ensuring they > remain perfectly regular ... not so much.
Your interpretation matches mine all around. It is unfortunate that we have hijacked the standard's syntax for arrays to add a matrix feature. It seems to leave us without any way forward on these issues that I like very much. -- Kevin Grittner 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