From c155f654b4f755b4111bd9adb60559fe22526a10 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 7 Sep 2013 11:44:33 -0400 Subject: [PATCH] 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 --- contrib/intarray/_int_tool.c | 7 +++++++ 1 file changed, 7 insertions(+) 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;