Hi,
Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
>
>>But I was disappointed that this doesn't:
>
>
>>regression=# select ARRAY['{{1,2},{3,4}}'::int[],'{{5,6},{7,8}}'::int[]];
>>ERROR: multidimensional ARRAY[] must be built from nested array expressions
>
>
> Drat, I was assuming that that *would* work.
>
>
>>Should I try to make the second and third cases work?
>
>
> Could you look at how big a change it'd be, anyway? Offhand I think it
> may just mean that the subscript-checking done in parse_expr.c needs to
> be done at runtime instead. Remember parse_expr should only be
> concerned about determining datatype, and for its purposes all arrays of
> a given element type are the same --- subscript checking should happen
> at runtime. (It seems likely that having an ndims field in ArrayExpr
> is inappropriate.)
Wouldn't it be a good idea to just extend the partner arrays? Say
if we concenate array A(Na,..,Xa) || B(Nb,...,Xb)
The resulting array C would be of dimension
C(Na+Nb,max(Oa,Ob),max(Pa,Pb), ... max(Xa,Xb))
So concenation would be an extending and right hand appending (at first
level)
Regards
Tino Wildenhain