Currently, the constructs '{}'::arraytype ARRAY[]::arraytype return zero-dimensional arrays, as does the underlying function construct_empty_array(). I can't immediately find any way at SQL level to produce an empty array with one or more dimensions. However, construct_array and construct_md_array will happily build zero-length arrays of dimension 1 or higher, leading to weirdnesses such as illustrated here: http://archives.postgresql.org/pgsql-general/2008-10/msg00915.php
Seems like we ought to clean this up. I'm not sure which way to jump though: should we decree that arrays of no elements must always have zero dimensions, or should we get rid of that and standardize on, say, 1-D array with lower bound 1 and upper bound 0? A somewhat related issue that I noticed while poking at this is that array_dims() returns NULL for a zero-dimension array. That seems a bit bogus too; wouldn't an empty string be saner? Of course the issue goes away if we get rid of zero-dimension arrays. Thoughts? 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