deepthi912 commented on code in PR #18552:
URL: https://github.com/apache/pinot/pull/18552#discussion_r3278516096


##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java:
##########
@@ -1316,55 +1317,68 @@ private static void 
validateUpsertConfigUpdate(TableConfig newConfig, TableConfi
     boolean existingUpsertEnabled = existingConfig.isUpsertEnabled();
     boolean newUpsertEnabled = newConfig.isUpsertEnabled();
 
-    // Check if upsert is being added or removed
     if (existingUpsertEnabled != newUpsertEnabled) {
       if (existingUpsertEnabled) {
-        LOGGER.info("upsertConfig is removed from existing upsert table: {}", 
newConfig.getTableName());
-      } else {
-        LOGGER.info("upsertConfig is added to existing non-upsert table: {}", 
newConfig.getTableName());
-      }
-    } else if (existingUpsertEnabled) {
-      UpsertConfig existingUpsertConfig = existingConfig.getUpsertConfig();
-      UpsertConfig newUpsertConfig = newConfig.getUpsertConfig();
-
-      if (existingUpsertConfig.getMode() != newUpsertConfig.getMode()) {
         violations.add(
-            String.format("upsertConfig.mode (%s -> %s)", 
existingUpsertConfig.getMode(), newUpsertConfig.getMode()));
-      }
-      if (existingUpsertConfig.getHashFunction() != 
newUpsertConfig.getHashFunction()) {
-        violations.add(String.format("upsertConfig.hashFunction (%s -> %s)", 
existingUpsertConfig.getHashFunction(),
-            newUpsertConfig.getHashFunction()));
-      }
-      if (!Objects.equals(existingUpsertConfig.getComparisonColumns(),
-          newUpsertConfig.getComparisonColumns())) {
+            String.format("Cannot remove upsertConfig from existing upsert 
table: %s", newConfig.getTableName()));
+      } else {
         violations.add(
-            String.format("upsertConfig.comparisonColumns (%s -> %s)", 
existingUpsertConfig.getComparisonColumns(),
-                newUpsertConfig.getComparisonColumns()));
-      }
-      List<String> existingComparisonColumns = 
existingUpsertConfig.getComparisonColumns();
-      if (existingComparisonColumns == null || 
existingComparisonColumns.isEmpty()) {
-        String existingTimeColumn =
-            existingConfig.getValidationConfig() != null ? 
existingConfig.getValidationConfig().getTimeColumnName()
-                : null;
-        String newTimeColumn =
-            newConfig.getValidationConfig() != null ? 
newConfig.getValidationConfig().getTimeColumnName() : null;
-        if (!Objects.equals(existingTimeColumn, newTimeColumn)) {
-          violations.add(
-              String.format("timeColumnName (%s -> %s) - used as default 
comparison column", existingTimeColumn,
-                  newTimeColumn));
-        }
+            String.format("Cannot add upsertConfig to existing non-upsert 
table: %s", newConfig.getTableName()));
       }
-      if (existingUpsertConfig.isDropOutOfOrderRecord() != 
newUpsertConfig.isDropOutOfOrderRecord()) {
+      return;
+    }
+
+    if (!existingUpsertEnabled) {
+      return;
+    }
+
+    UpsertConfig existingUpsertConfig = existingConfig.getUpsertConfig();
+    UpsertConfig newUpsertConfig = newConfig.getUpsertConfig();
+
+    if (existingUpsertConfig.getMode() != newUpsertConfig.getMode()) {
+      violations.add(
+          String.format("upsertConfig.mode (%s -> %s)", 
existingUpsertConfig.getMode(), newUpsertConfig.getMode()));
+    }
+    if (existingUpsertConfig.getHashFunction() != 
newUpsertConfig.getHashFunction()) {
+      violations.add(String.format("upsertConfig.hashFunction (%s -> %s)", 
existingUpsertConfig.getHashFunction(),
+          newUpsertConfig.getHashFunction()));
+    }
+    if (!Objects.equals(existingUpsertConfig.getComparisonColumns(), 
newUpsertConfig.getComparisonColumns())) {
+      violations.add(
+          String.format("upsertConfig.comparisonColumns (%s -> %s)", 
existingUpsertConfig.getComparisonColumns(),
+              newUpsertConfig.getComparisonColumns()));
+    }
+    List<String> existingComparisonColumns = 
existingUpsertConfig.getComparisonColumns();
+    if (existingComparisonColumns == null || 
existingComparisonColumns.isEmpty()) {
+      String existingTimeColumn =
+          existingConfig.getValidationConfig() != null ? 
existingConfig.getValidationConfig().getTimeColumnName()
+              : null;
+      String newTimeColumn =
+          newConfig.getValidationConfig() != null ? 
newConfig.getValidationConfig().getTimeColumnName() : null;
+      if (!Objects.equals(existingTimeColumn, newTimeColumn)) {
         violations.add(
-            String.format("upsertConfig.dropOutOfOrderRecord (%s -> %s)", 
existingUpsertConfig.isDropOutOfOrderRecord(),
-                newUpsertConfig.isDropOutOfOrderRecord()));
-      }
-      if (!Objects.equals(existingUpsertConfig.getOutOfOrderRecordColumn(),
-          newUpsertConfig.getOutOfOrderRecordColumn())) {
-        violations.add(String.format("upsertConfig.outOfOrderRecordColumn (%s 
-> %s)",
-            existingUpsertConfig.getOutOfOrderRecordColumn(), 
newUpsertConfig.getOutOfOrderRecordColumn()));
+            String.format("timeColumnName (%s -> %s) - used as default 
comparison column", existingTimeColumn,
+                newTimeColumn));
       }
     }
+    if (existingUpsertConfig.isDropOutOfOrderRecord() != 
newUpsertConfig.isDropOutOfOrderRecord()) {
+      violations.add(
+          String.format("upsertConfig.dropOutOfOrderRecord (%s -> %s)", 
existingUpsertConfig.isDropOutOfOrderRecord(),
+              newUpsertConfig.isDropOutOfOrderRecord()));
+    }
+    if (!Objects.equals(existingUpsertConfig.getOutOfOrderRecordColumn(),
+        newUpsertConfig.getOutOfOrderRecordColumn())) {
+      violations.add(String.format("upsertConfig.outOfOrderRecordColumn (%s -> 
%s)",
+          existingUpsertConfig.getOutOfOrderRecordColumn(), 
newUpsertConfig.getOutOfOrderRecordColumn()));
+    }
+    if (!Objects.equals(existingUpsertConfig.getDeleteRecordColumn(), 
newUpsertConfig.getDeleteRecordColumn())) {
+      violations.add(String.format("upsertConfig.deleteRecordColumn (%s -> 
%s)",
+          existingUpsertConfig.getDeleteRecordColumn(), 
newUpsertConfig.getDeleteRecordColumn()));
+    }
+    if (existingUpsertConfig.getConsistencyMode() != 
newUpsertConfig.getConsistencyMode()) {

Review Comment:
   This is still okay I think it only effects the way we see the data, 
technically we shouldn't see any data corruption with these changes kicking in 
imo.



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