Jackie-Jiang opened a new pull request, #18955: URL: https://github.com/apache/pinot/pull/18955
## Summary When ingestion metrics aggregation (the `aggregateMetrics` flag or ingestion `aggregationConfigs`) is enabled, the consuming segment now force-creates a dictionary on the dimension and time (aggregation-key) columns even when the table config marks them as no-dictionary, instead of silently disabling aggregation. Previously `enableMetricsAggregationIfPossible` returned early (aggregation off) whenever any dimension/time key column was no-dictionary, and `isNoDictionaryColumn` only force-created dictionaries for `STRING`/`BYTES` dimensions — so a no-dictionary key column of any other type silently turned rollup off. The forced dictionary is a transient consuming-segment structure used to key the in-memory rollup; the committed segment is rebuilt from the table config and still honors the no-dictionary setting. All metrics-aggregation config validation is consolidated into `TableConfigUtils#validateMetricsAggregation`, which for both mechanisms rejects `COMPLEX` schemas, multi-value dimensions, and dictionary-encoded / multi-value metrics, and returns the aggregation source columns consumed by transform-config validation. ## Backward incompatibility This changes behavior for existing tables on a rolling upgrade: - A table with metrics aggregation + a no-dictionary dimension previously had aggregation silently disabled; after this change it begins rolling up rows in the consuming segment (committed segments are unaffected). Query results over the consuming portion change accordingly. - Config validation now rejects configurations that were previously accepted (a `COMPLEX` column with aggregation; the `aggregateMetrics` flag with a multi-value dimension or a dictionary-encoded metric), so re-validating such a table on upgrade will fail until the config is fixed. -- 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]
