deemoliu commented on a change in pull request #7087:
URL: https://github.com/apache/incubator-pinot/pull/7087#discussion_r661874837
##########
File path:
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java
##########
@@ -371,17 +373,26 @@ static void validatePartialUpsertStrategies(TableConfig
tableConfig, Schema sche
List<String> primaryKeyColumns = schema.getPrimaryKeyColumns();
for (Map.Entry<String, UpsertConfig.Strategy> entry :
partialUpsertStrategies.entrySet()) {
String column = entry.getKey();
+ UpsertConfig.Strategy columnStrategy = entry.getValue();
Preconditions.checkState(!primaryKeyColumns.contains(column), "Merger
cannot be applied to primary key columns");
FieldSpec fieldSpec = schema.getFieldSpecFor(column);
Preconditions.checkState(fieldSpec != null, "Merger cannot be applied to
non-existing column: %s", column);
- if (entry.getValue() == UpsertConfig.Strategy.INCREMENT) {
+ if (columnStrategy == UpsertConfig.Strategy.INCREMENT) {
Preconditions.checkState(fieldSpec.getDataType().getStoredType().isNumeric(),
"INCREMENT merger cannot be applied to non-numeric column: %s",
column);
Preconditions.checkState(!schema.getDateTimeNames().contains(column),
"INCREMENT merger cannot be applied to date time column: %s",
column);
}
+
+ if (columnStrategy == UpsertConfig.Strategy.APPEND || columnStrategy ==
UpsertConfig.Strategy.UNION) {
+ Preconditions
+ .checkState(!fieldSpec.isSingleValueField(), "%s merger cannot be
applied to single-value column: %s",
+ columnStrategy.toString(), column);
+ Preconditions.checkState(!schema.getDateTimeNames().contains(column),
Review comment:
gotcha, removed this precondition check.
--
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]