Thanks for your quick reply Julian.
Although I do not feel too strongly about one choice or another, I think we
could use a single type, as it will simplify the GROUPING_ID and GROUPING
functions implementation. However, I agree with you that we cannot limit the
number of grouping columns.
By “fail fast” I meant discovering rules that did not handle GROUPING_ID
properly, without explicitly writing extra tests. By putting “g” at the start,
all key and aggregate columns would be off-by-one, so it maximizes the chance
of finding the problem (usually an assert due to a datatype