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]