gortiz commented on code in PR #10184:
URL: https://github.com/apache/pinot/pull/10184#discussion_r1148867232


##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/indexsegment/immutable/ImmutableSegmentLoader.java:
##########
@@ -166,6 +165,8 @@ public static ImmutableSegment load(SegmentDirectory 
segmentDirectory, IndexLoad
           segmentMetadata.removeColumn(column);
         }
       }
+    } else {
+      indexLoadingConfig.addKnownColumns(columnMetadataMap.keySet());

Review Comment:
   This is being used in `IndexType`s that also implement 
`ConfigurableFromIndexLoadingConfig`. From the javadoc of this interface:
   
   ```java
     /**
      * Returns a {@link ColumnConfigDeserializer} that can be used to 
deserialize the index config.
      *
      * This deserializer is used with higher priority whenever the index 
configuration needs to be read from an
      * {@link IndexLoadingConfig}.
      *
      * Sometimes {@link IndexLoadingConfig} is not completely configured and
      * {@link IndexLoadingConfig#getAllKnownColumns()} does not return all 
columns in the table.
      * Therefore the returned deserializer can be partial.
      */
   ```
   
   At the end of the day the problem we try to resolve here is that `index-spi` 
assumes that the source of truth is the `TableConfig` but we have tons of tests 
that instead of changing the `TableConfig`, they directly modify 
`IndexLoadingConfig`. I call it a _false mock_, given that we only use that in 
tests. Therefore we need to add all this code here in order to support our own 
tests without much changes.
   
   @Jackie-Jiang and I want to remove `IndexLoadingConfig` mutability (or even 
better, the class!), but it is not a sensible job and there are more 
implications than we initially expected, so we decided to have this 
`ConfigurableFromIndexLoadingConfig` interface as a poor man _temporal_ 
solution.



-- 
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