xiangfu0 commented on code in PR #18668:
URL: https://github.com/apache/pinot/pull/18668#discussion_r4418734876


##########
pinot-spi/src/main/java/org/apache/pinot/spi/config/table/FieldConfig.java:
##########
@@ -216,8 +222,32 @@ public String getName() {
     return _name;
   }
 
+  /// Returns the legacy field-level forward-index encoding.
+  ///
+  /// Prefer configuring and reading `encodingType` from `indexes.forward`. 
This method keeps backward-compatible
+  /// defaulting for older configs: when the deprecated field-level value is 
absent, it returns `DICTIONARY`.
+  @JsonIgnore
+  @Deprecated

Review Comment:
   Addressed in dbf0005ffe: all new FieldConfig deprecations now specify since 
= "1.7.0" and forRemoval = true. Existing deprecations retain their historical 
versions (0.13.0 for the constructor and 0.9.0 for getIndexType).



##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java:
##########
@@ -2047,11 +2047,16 @@ private static void 
validateIndexingConfigAndFieldConfigList(TableConfig tableCo
         String column = fieldConfig.getName();
         Preconditions.checkState(seenColumns.add(column), "Duplicate 
FieldConfig for column: %s", column);
         Preconditions.checkState(schema.hasColumn(column), "Failed to find 
column: %s in schema", column);
-
-        // Validate DELTA / DELTADELTA compression codecs compatibility
-        validateGorillaCompressionCodecIfPresent(fieldConfig, 
schema.getFieldSpecFor(column));
+        Preconditions.checkState(!fieldConfig.hasFieldLevelEncodingType(),
+            "FieldConfig.encodingType is deprecated for column: %s. Use 
fieldConfigList[].indexes.forward.encodingType "

Review Comment:
   Addressed in dbf0005ffe by choosing soft deprecation, as Jackie suggested. 
Create/update validation accepts and preserves legacy encoding, compression, 
and properties, including serializer-injected DICTIONARY. Automatic removal of 
legacy RAW would make the config unreadable by older nodes, so it is deferred; 
genuine RAW versus canonical DICTIONARY conflicts still fail. The controller 
GET/edit-description/PUT regression passes for DICTIONARY, RAW plus SNAPPY, and 
legacy properties.



##########
pinot-spi/src/main/java/org/apache/pinot/spi/config/table/FieldConfig.java:
##########
@@ -242,6 +272,7 @@ public JsonNode getTierOverwrites() {
   /// Returns the raw forward-index compression codec, or `null` when using 
`codecSpec` or the
   /// default. Still the only way to express `MV_ENTRY_DICT` and the CLP 
family — not deprecated.
   @Nullable
+  @Deprecated

Review Comment:
   Addressed in dbf0005ffe: the getter documentation now points to 
indexes.forward.compressionCodec, including MV_ENTRY_DICT and the CLP family, 
and distinguishes codecSpec pipeline compression. Removed the stale "not 
deprecated" claim.



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