Source:
private void verifyTableConfigs(TableConfig newTableConfig) { String rawTableName = TableNameBuilder.extractRawTableName(newTableConfig.getTableName()); LOGGER.info("Validating table configs for Table: {}", rawTableName); TableConfig tableConfigToCompare = null; if (newTableConfig.getTableType() == TableType.REALTIME) { if (_pinotHelixResourceManager.hasOfflineTable(rawTableName)) { tableConfigToCompare = _pinotHelixResourceManager.getOfflineTableConfig(rawTableName); } } else { if (_pinotHelixResourceManager.hasRealtimeTable(rawTableName)) { tableConfigToCompare = _pinotHelixResourceManager.getRealtimeTableConfig(rawTableName); } } if (tableConfigToCompare == null) { LOGGER.info( "Table: is not a hybrid table. Skipping consistency check across realtime and offline parts of the table.", rawTableName); return; } SegmentsValidationAndRetentionConfig newSegmentConfig = newTableConfig.getValidationConfig(); SegmentsValidationAndRetentionConfig SegmentConfigToCompare = tableConfigToCompare.getValidationConfig(); String newTimeColumnName = newSegmentConfig.getTimeColumnName(); if(newTimeColumnName == null) { throw new PinotHelixResourceManager.InvalidTableConfigException("Must provide valid timeColumnName in tableConfig"); } String existingTimeColumnName = SegmentConfigToCompare.getTimeColumnName(); if (!Objects.equal(existingTimeColumnName, newTimeColumnName)) { throw new PinotHelixResourceManager.InvalidTableConfigException(String .format("Time column names are different! Existing time column name: %s. New time column name: %s", existingTimeColumnName, newTimeColumnName)); } TimeUnit existingTimeColumnType = SegmentConfigToCompare.getTimeType(); TimeUnit newTimeColumnType = newSegmentConfig.getTimeType(); if (existingTimeColumnType != newTimeColumnType) { throw new PinotHelixResourceManager.InvalidTableConfigException(String .format("Time column types are different! Existing time column type: %s. New time column type: %s", existingTimeColumnType, newTimeColumnType)); } LOGGER.info("Finished validating tables config for Table: {}", rawTableName); }

Target:
private void verifyTableConfigs(TableConfig newTableConfig) { String rawTableName = TableNameBuilder.extractRawTableName(newTableConfig.getTableName()); LOGGER.info("Validating table configs for Table: {}", rawTableName); TableConfig tableConfigToCompare = null; if (newTableConfig.getTableType() == TableType.REALTIME) { if (_pinotHelixResourceManager.hasOfflineTable(rawTableName)) { tableConfigToCompare = _pinotHelixResourceManager.getOfflineTableConfig(rawTableName); } } else { if (_pinotHelixResourceManager.hasRealtimeTable(rawTableName)) { tableConfigToCompare = _pinotHelixResourceManager.getRealtimeTableConfig(rawTableName); } } if (tableConfigToCompare == null) { LOGGER.info( "Table: is not a hybrid table. Skipping consistency check across realtime and offline parts of the table.", rawTableName); return; } SegmentsValidationAndRetentionConfig newSegmentConfig = newTableConfig.getValidationConfig(); SegmentsValidationAndRetentionConfig SegmentConfigToCompare = tableConfigToCompare.getValidationConfig(); String newTimeColumnName = newSegmentConfig.getTimeColumnName(); String existingTimeColumnName = SegmentConfigToCompare.getTimeColumnName(); if (!Objects.equal(existingTimeColumnName, newTimeColumnName)) { throw new PinotHelixResourceManager.InvalidTableConfigException(String .format("Time column names are different! Existing time column name: %s. New time column name: %s", existingTimeColumnName, newTimeColumnName)); } TimeUnit existingTimeColumnType = SegmentConfigToCompare.getTimeType(); TimeUnit newTimeColumnType = newSegmentConfig.getTimeType(); if (existingTimeColumnType != newTimeColumnType) { throw new PinotHelixResourceManager.InvalidTableConfigException(String .format("Time column types are different! Existing time column type: %s. New time column type: %s", existingTimeColumnType, newTimeColumnType)); } LOGGER.info("Finished validating tables config for Table: {}", rawTableName); }