From 0548497cc5ae9d8e0ab3ae72d7f7f8ad47f9bb84 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sat, 23 Apr 2005 05:38:22 +0000
Subject: [PATCH] int_aggregate's int_enum() doesn't work correctly with arrays
 that aren't 1-D, so give an error message instead of failing.  Per report
 from Ron Mayer.

---
 contrib/intagg/int_aggregate.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/contrib/intagg/int_aggregate.c b/contrib/intagg/int_aggregate.c
index 1c95d64af61..292855018ac 100644
--- a/contrib/intagg/int_aggregate.c
+++ b/contrib/intagg/int_aggregate.c
@@ -242,6 +242,9 @@ int_enum(PG_FUNCTION_ARGS)
 			pc->p = p;
 			pc->flags = 0;
 		}
+		/* Now that we have a detoasted array, verify dimensions */
+		if (pc->p->a.ndim != 1)
+			elog(ERROR, "int_enum only accepts 1-D arrays");
 		pc->num = 0;
 		fcinfo->context = (Node *) pc;
 		MemoryContextSwitchTo(oldcontext);
-- 
GitLab