krishan1390 commented on code in PR #16845: URL: https://github.com/apache/pinot/pull/16845#discussion_r2375722082
########## pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/stats/SegmentPreIndexStatsCollectorImpl.java: ########## @@ -44,38 +47,49 @@ public SegmentPreIndexStatsCollectorImpl(StatsCollectorConfig statsCollectorConf @Override public void init() { _columnStatsCollectorMap = new HashMap<>(); + Map<String, FieldIndexConfigs> indexConfigsByCol = FieldIndexConfigsUtil.createIndexConfigsByColName( + _statsCollectorConfig.getTableConfig(), _statsCollectorConfig.getSchema()); Schema dataSchema = _statsCollectorConfig.getSchema(); for (FieldSpec fieldSpec : dataSchema.getAllFieldSpecs()) { String column = fieldSpec.getName(); - switch (fieldSpec.getDataType().getStoredType()) { - case INT: - _columnStatsCollectorMap.put(column, new IntColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - case LONG: - _columnStatsCollectorMap.put(column, new LongColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - case FLOAT: - _columnStatsCollectorMap.put(column, new FloatColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - case DOUBLE: - _columnStatsCollectorMap.put(column, new DoubleColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - case BIG_DECIMAL: - _columnStatsCollectorMap.put(column, - new BigDecimalColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - case STRING: - _columnStatsCollectorMap.put(column, new StringColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - case BYTES: - _columnStatsCollectorMap.put(column, new BytesColumnPredIndexStatsCollector(column, _statsCollectorConfig)); - break; - case MAP: - _columnStatsCollectorMap.put(column, new MapColumnPreIndexStatsCollector(column, _statsCollectorConfig)); - break; - default: - throw new IllegalStateException("Unsupported data type: " + fieldSpec.getDataType()); + boolean dictionaryEnabled = true; + // Determine dictionary from table/index configs + if (indexConfigsByCol.get(column) != null) { + dictionaryEnabled = indexConfigsByCol.get(column).getConfig(StandardIndexes.dictionary()).isEnabled(); + } + if (dictionaryEnabled || fieldSpec.getDataType().getStoredType().equals(FieldSpec.DataType.MAP)) { Review Comment: I needed to add more handling for map. will pick this up now. -- 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: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org