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]

Reply via email to