diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c index 7d0279ec3ef..b441f7e5cac 100644 --- a/src/backend/optimizer/prep/prepunion.c +++ b/src/backend/optimizer/prep/prepunion.c @@ -697,9 +697,13 @@ generate_nonunion_path(SetOperationStmt *op, PlannerInfo *root, /* Identify the grouping semantics */ groupList = generate_setop_grouplist(op, tlist); - /* punt if nothing to group on (can this happen?) */ + /* punt if nothing to group on (not worth fixing in back branches) */ if (groupList == NIL) - return path; + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + /* translator: %s is UNION, INTERSECT, or EXCEPT */ + errmsg("%s over no columns is not supported", + (op->op == SETOP_INTERSECT) ? "INTERSECT" : "EXCEPT"))); /* * Estimate number of distinct groups that we'll need hashtable entries @@ -850,9 +854,12 @@ make_union_unique(SetOperationStmt *op, Path *path, List *tlist, /* Identify the grouping semantics */ groupList = generate_setop_grouplist(op, tlist); - /* punt if nothing to group on (can this happen?) */ + /* punt if nothing to group on (not worth fixing in back branches) */ if (groupList == NIL) - return path; + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + /* translator: %s is UNION, INTERSECT, or EXCEPT */ + errmsg("%s over no columns is not supported", "UNION"))); /* * XXX for the moment, take the number of distinct groups as equal to the