xiangfu0 opened a new pull request, #19177: URL: https://github.com/apache/pinot/pull/19177
## Summary Rolls back the offline upsert "no comparison column" support added in #17789. Offline upsert validation now matches realtime upsert: a comparison column is always required, resolved from `upsertConfig.comparisonColumns` or the table's time column. The implicit segment-creation-time / ZK-push-time fallback is removed — it created more problems than it solved. Offline upsert is not GA, so no backward-compatibility shims are kept. ## Changes - **`TableConfigUtils`**: offline upsert table must configure a comparison column or a time column (same resolution as realtime). - **`BaseTableUpsertMetadataManager`**: revert comparison-column resolution to the realtime behavior; fail fast with an actionable message instead of an NPE when neither column is configured on the server load path. - **`UpsertUtils`**: remove `ConstantComparisonColumnReader` and the constant-value `RecordInfoReader` constructor. - **`BasePartitionUpsertMetadataManager`**: revert the empty-comparison-column TTL guards and `RecordInfoReader` call sites; rename `getAuthoritativeUpdateOrCreationTime` → `getAuthoritativeCreationTime` and drop the offline push-time branch; remove the now-unused table type field. - **`SegmentMetadataImpl`** / **`BaseTableDataManager`**: remove the `zkPushTime` plumbing; rename `setZkOperationTimeIfAvailable` → `setZkCreationTimeIfAvailable`. ## Testing - `TableConfigUtilsTest#testValidateUpsertConfig` updated: valid offline config now sets a comparison column; added a negative case (neither column configured) and a positive case (time-column-only). - Existing `ConcurrentMapPartitionUpsertMetadataManagerTest` and `...ForConsistentDeletesTest` pass unchanged. - The existing time-column-based `OfflineUpsertTableTest` continues to work unchanged. ## Labels `cleanup`, `refactor` -- 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]
