danny0405 commented on code in PR #9892:
URL: https://github.com/apache/hudi/pull/9892#discussion_r1371328884
##########
hudi-common/src/main/java/org/apache/hudi/common/model/DefaultHoodieRecordPayload.java:
##########
@@ -86,30 +86,26 @@ public Option<IndexedRecord> getInsertValue(Schema schema,
Properties properties
GenericRecord incomingRecord = HoodieAvroUtils.bytesToAvro(recordBytes,
schema);
eventTime = updateEventTime(incomingRecord, properties);
- return isDeleteRecord(incomingRecord, properties) ? Option.empty() :
Option.of(incomingRecord);
+ return isDeleted(schema, properties) ? Option.empty() :
Option.of(incomingRecord);
}
- /**
- * @param genericRecord instance of {@link GenericRecord} of interest.
- * @param properties payload related properties
- * @returns {@code true} if record represents a delete record. {@code false}
otherwise.
- */
- protected boolean isDeleteRecord(GenericRecord genericRecord, Properties
properties) {
- final String deleteKey = properties.getProperty(DELETE_KEY);
+ @Override
+ protected boolean isDeleteRecord(GenericRecord record, Properties props) {
+ final String deleteKey = props.getProperty(DELETE_KEY);
if (StringUtils.isNullOrEmpty(deleteKey)) {
- return isDeleteRecord(genericRecord);
+ return super.isDeleteRecord(record, props);
Review Comment:
And these 2 options are not even included in any configuration class, I
don't know why they are located in the
`DefaultHoodieRecordPayload`, if the logic is customized just for
`DefaultHoodieRecordPayload`, we should not invoke it in the parent constructor
because not all payloads are sub-class of `DefaultHoodieRecordPayload`
- `hoodie.payload.delete.field`
- `hoodie.payload.delete.marker`
--
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]