xiangfu0 commented on code in PR #18662:
URL: https://github.com/apache/pinot/pull/18662#discussion_r3390742275
##########
pinot-common/src/thrift/query.thrift:
##########
@@ -32,6 +32,10 @@ struct PinotQuery {
11: optional map<string, string> queryOptions;
12: optional bool explain;
13: optional map<Expression, Expression> expressionOverrideHints;
+ // GROUP BY GROUPING SETS / ROLLUP / CUBE: one membership bitmask per
grouping set, over groupByList. Bit i
+ // is set iff groupByList[i] participates in (is grouped by) that set; a
mask of 0 is the grand-total set ().
+ // Unset for a plain GROUP BY query.
+ 14: optional list<i32> groupingSetMasks;
Review Comment:
Yes — only for grouping-set queries: the union of grouping columns
(groupByList when this field is set) is capped at 31 so each mask fits in an
i32. It is enforced at compile time with a clear error
(`CalciteSqlParser.MAX_GROUPING_SETS_COLUMNS`, tested by
`GroupingSetsParserTest#testTooManyGroupingColumnsRejected`); the set count is
separately capped at 4096 to guard against CUBE blow-up. Plain GROUP BY queries
(field unset) are unaffected. Documented the limit on this field in 7db8e0594e.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]