From: Bruce Momjian Date: Sat, 7 Sep 2013 15:44:33 +0000 (-0400) Subject: intarray: return empty zero-dimensional array for an empty array X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=c155f654b4f755b4111bd9adb60559fe22526a10;p=users%2Fbernd%2Fpostgres.git intarray: return empty zero-dimensional array for an empty array Previously a one-dimensional empty array was returned, but its text representation matched a zero-dimensional array, and there is no way to dump/reload a one-dimensional empty array. BACKWARD INCOMPATIBILITY Per report from elein --- diff --git a/contrib/intarray/_int_tool.c b/contrib/intarray/_int_tool.c index 863557672e..fc462b2076 100644 --- a/contrib/intarray/_int_tool.c +++ b/contrib/intarray/_int_tool.c @@ -246,6 +246,13 @@ resize_intArrayType(ArrayType *a, int num) int nbytes = ARR_DATA_OFFSET(a) + sizeof(int) * num; int i; + /* if no elements, return a zero-dimensional array */ + if (num == 0) + { + ARR_NDIM(a) = 0; + return a; + } + if (num == ARRNELEMS(a)) return a;