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

Reply via email to