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.
This commit is contained in:
Tom Lane 2005-04-23 05:38:43 +00:00
parent 8e4b89ccf2
commit 58d0214ed8

View File

@ -222,6 +222,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);