Jackie-Jiang commented on a change in pull request #6876:
URL: https://github.com/apache/incubator-pinot/pull/6876#discussion_r626772295



##########
File path: 
pinot-spi/src/main/java/org/apache/pinot/spi/config/table/FieldConfig.java
##########
@@ -51,11 +52,13 @@
   public FieldConfig(@JsonProperty(value = "name", required = true) String 
name,
       @JsonProperty(value = "encodingType") @Nullable EncodingType 
encodingType,
       @JsonProperty(value = "indexType") @Nullable IndexType indexType,
-      @JsonProperty(value = "properties") @Nullable Map<String, String> 
properties) {
+      @JsonProperty(value = "properties") @Nullable Map<String, String> 
properties,
+      @JsonProperty(value = "noDictionaryColumnCompressionCodec") @Nullable 
NoDictionaryColumnCompressionCodec noDictionaryColumnCompressionCodec) {

Review comment:
       Shall we simplify the field name, e.g. `compressionCodec`? This long 
name is slightly hard to config, and we don't need to separate the codec of raw 
vs dictionary encoded

##########
File path: 
pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/LuceneRealtimeClusterIntegrationTest.java
##########
@@ -102,7 +102,7 @@ protected String getSortedColumn() {
   @Override
   protected List<FieldConfig> getFieldConfigs() {
     return Collections.singletonList(
-        new FieldConfig(TEXT_COLUMN_NAME, FieldConfig.EncodingType.RAW, 
FieldConfig.IndexType.TEXT, null));
+        new FieldConfig(TEXT_COLUMN_NAME, FieldConfig.EncodingType.RAW, 
FieldConfig.IndexType.TEXT, null,null));

Review comment:
       Reformat

##########
File path: 
pinot-core/src/test/java/org/apache/pinot/core/util/TableConfigUtilsTest.java
##########
@@ -712,14 +712,36 @@ public void testValidateFieldConfig() {
         .setNoDictionaryColumns(Arrays.asList("myCol1")).build();
     try {
       FieldConfig fieldConfig =
-          new FieldConfig("myCol21", FieldConfig.EncodingType.RAW, 
FieldConfig.IndexType.FST, null);
+          new FieldConfig("myCol21", FieldConfig.EncodingType.RAW, 
FieldConfig.IndexType.FST, null, null);
       tableConfig.setFieldConfigList(Arrays.asList(fieldConfig));
       TableConfigUtils.validate(tableConfig, schema);
       Assert.fail("Should fail since field name is not present in schema");
     } catch (Exception e) {
       Assert.assertEquals(e.getMessage(),
           "Column Name myCol21 defined in field config list must be a valid 
column defined in the schema");
     }
+
+    tableConfig = new 
TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME).build();
+    try {
+      FieldConfig fieldConfig =
+          new FieldConfig("intCol", FieldConfig.EncodingType.DICTIONARY, null, 
null, FieldConfig.NoDictionaryColumnCompressionCodec.SNAPPY);
+      tableConfig.setFieldConfigList(Arrays.asList(fieldConfig));
+      TableConfigUtils.validate(tableConfig, schema);
+      Assert.fail("Should fail since dictionary encoding does not support 
compression codec snappy ");

Review comment:
       (nit) extra space in the end

##########
File path: 
pinot-spi/src/main/java/org/apache/pinot/spi/config/table/FieldConfig.java
##########
@@ -51,11 +52,13 @@
   public FieldConfig(@JsonProperty(value = "name", required = true) String 
name,
       @JsonProperty(value = "encodingType") @Nullable EncodingType 
encodingType,
       @JsonProperty(value = "indexType") @Nullable IndexType indexType,
-      @JsonProperty(value = "properties") @Nullable Map<String, String> 
properties) {
+      @JsonProperty(value = "properties") @Nullable Map<String, String> 
properties,
+      @JsonProperty(value = "noDictionaryColumnCompressionCodec") @Nullable 
NoDictionaryColumnCompressionCodec noDictionaryColumnCompressionCodec) {

Review comment:
       Move it in front of `properties` to match the declaration order




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

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