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]

Reply via email to