This is an automated email from the ASF dual-hosted git repository.
wombatu-kun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new e6286fb959c2 test(common): drop duplicated key-based buffer tests
(#19995)
e6286fb959c2 is described below
commit e6286fb959c2326c9547bd2fd1a32c4660a92913
Author: voonhous <[email protected]>
AuthorDate: Fri Sep 18 20:43:21 2026 +0800
test(common): drop duplicated key-based buffer tests (#19995)
---
.../buffer/TestKeyBasedFileGroupRecordBuffer.java | 172 ---------------------
1 file changed, 172 deletions(-)
diff --git
a/hudi-common/src/test/java/org/apache/hudi/common/table/read/buffer/TestKeyBasedFileGroupRecordBuffer.java
b/hudi-common/src/test/java/org/apache/hudi/common/table/read/buffer/TestKeyBasedFileGroupRecordBuffer.java
index a5dbe4c9d86f..60c0552a444a 100644
---
a/hudi-common/src/test/java/org/apache/hudi/common/table/read/buffer/TestKeyBasedFileGroupRecordBuffer.java
+++
b/hudi-common/src/test/java/org/apache/hudi/common/table/read/buffer/TestKeyBasedFileGroupRecordBuffer.java
@@ -21,18 +21,13 @@ package org.apache.hudi.common.table.read.buffer;
import org.apache.hudi.common.avro.HoodieAvroReaderContext;
import org.apache.hudi.common.config.RecordMergeMode;
-import org.apache.hudi.common.config.TypedProperties;
import org.apache.hudi.common.engine.HoodieReaderContext;
import org.apache.hudi.common.model.DeleteRecord;
import org.apache.hudi.common.model.HoodieAvroRecordMerger;
-import org.apache.hudi.common.model.HoodieRecord;
-import org.apache.hudi.common.model.HoodieRecordMerger;
import org.apache.hudi.common.table.HoodieTableConfig;
-import org.apache.hudi.common.table.HoodieTableVersion;
import org.apache.hudi.common.table.log.block.HoodieDataBlock;
import org.apache.hudi.common.table.log.block.HoodieDeleteBlock;
import org.apache.hudi.common.table.read.BufferedRecord;
-import org.apache.hudi.common.table.read.FileGroupReaderSchemaHandler;
import org.apache.hudi.common.table.read.HoodieReadStats;
import org.apache.hudi.common.util.Option;
import org.apache.hudi.common.util.collection.ClosableIterator;
@@ -49,10 +44,7 @@ import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.stream.Stream;
-import static
org.apache.hudi.common.model.DefaultHoodieRecordPayload.DELETE_KEY;
-import static
org.apache.hudi.common.model.DefaultHoodieRecordPayload.DELETE_MARKER;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
@@ -65,19 +57,11 @@ class TestKeyBasedFileGroupRecordBuffer extends
BaseTestFileGroupRecordBuffer {
private final IndexedRecord testRecord2Update = createTestRecord("2", 1, 2L);
private final IndexedRecord testRecord2EarlierUpdate = createTestRecord("2",
1, 0L);
private final IndexedRecord testRecord2Delete = createTestRecord("2", 2, 3L);
- private final IndexedRecord testRecord2CustomPayloadExpected =
createTestRecord("2", 2, 2L);
private final IndexedRecord testRecord3 = createTestRecord("3", 1, 1L);
private final IndexedRecord testRecord3Update = createTestRecord("3", 1, 2L);
- private final IndexedRecord testRecord3UpdateCustomPayloadExpected =
createTestRecord("3", 2, 2L);
private final IndexedRecord testRecord3DeleteByFieldValue =
createTestRecord("3", 3, 1L);
private final IndexedRecord testRecord4 = createTestRecord("4", 2, 1L);
private final IndexedRecord testRecord4Update = createTestRecord("4", 1, 2L);
- private final IndexedRecord testRecord4EarlierUpdate = createTestRecord("4",
1, 0L);
- private final IndexedRecord testRecord5 = createTestRecord("5", 1, 1L);
- private final IndexedRecord testRecord5DeleteByCustomMarker =
createTestRecord("5", 3, 2L);
- private final IndexedRecord testRecord6 = createTestRecord("6", 1, 5L);
- private final IndexedRecord testRecord6DeleteByCustomMarker =
createTestRecord("6", 3, 2L);
- private final IndexedRecord testRecord7 = createTestRecord("7", 1, 5L);
/**
* Asserts that {@code processNextDataRecord} and {@code
isPartialMergingEnabled} keep their
@@ -168,46 +152,6 @@ class TestKeyBasedFileGroupRecordBuffer extends
BaseTestFileGroupRecordBuffer {
assertEquals(2, readStats.getNumUpdates());
}
- @Test
- void readWithEventTimeOrderingWithRecords() throws IOException {
- HoodieReadStats readStats = new HoodieReadStats();
- TypedProperties properties = new TypedProperties();
- properties.setProperty(HoodieTableConfig.ORDERING_FIELDS.key(), "ts");
- properties.setProperty(DELETE_KEY, "counter");
- properties.setProperty(DELETE_MARKER, "3");
- HoodieTableConfig tableConfig = mock(HoodieTableConfig.class);
-
when(tableConfig.getRecordMergeMode()).thenReturn(RecordMergeMode.EVENT_TIME_ORDERING);
- when(tableConfig.getPartialUpdateMode()).thenReturn(Option.empty());
-
when(tableConfig.getTableVersion()).thenReturn(HoodieTableVersion.current());
- when(tableConfig.getRecordKeyFields()).thenReturn(Option.of(new String[]
{"record_key"}));
- when(tableConfig.getPartitionFields()).thenReturn(Option.empty());
- StorageConfiguration<?> storageConfiguration =
mock(StorageConfiguration.class);
- HoodieReaderContext<IndexedRecord> readerContext = new
HoodieAvroReaderContext(storageConfiguration, tableConfig, Option.empty(),
Option.empty());
- readerContext.setHasLogFiles(false);
- readerContext.setHasBootstrapBaseFile(false);
- readerContext.initRecordMerger(properties);
- FileGroupReaderSchemaHandler schemaHandler = new
FileGroupReaderSchemaHandler(readerContext, SCHEMA, SCHEMA, Option.empty(),
- properties, createMockMetaClient(tableConfig));
- readerContext.setSchemaHandler(schemaHandler);
- List<HoodieRecord> inputRecords =
convertToHoodieRecordsList(Arrays.asList(testRecord1UpdateWithSameTime,
testRecord2Update, testRecord3Update, testRecord4EarlierUpdate, testRecord7));
-
inputRecords.addAll(convertToHoodieRecordsListForDeletes(Arrays.asList(testRecord5DeleteByCustomMarker,
testRecord6DeleteByCustomMarker), false));
- KeyBasedFileGroupRecordBuffer<IndexedRecord> fileGroupRecordBuffer =
buildKeyBasedFileGroupRecordBuffer(readerContext, tableConfig, readStats, null,
- RecordMergeMode.EVENT_TIME_ORDERING, Collections.singletonList("ts"),
properties, Option.of(inputRecords.iterator()));
-
-
fileGroupRecordBuffer.setBaseFileIterator(ClosableIterator.wrap(Arrays.asList(testRecord1,
testRecord2, testRecord3, testRecord4,
- testRecord5, testRecord6).iterator()));
-
- List<IndexedRecord> actualRecords =
getActualRecords(fileGroupRecordBuffer);
- // update for 4 is ignored due to lower ordering value.
- // record5 is deleted.
- // delete for 6 is ignored due to lower ordering value.
-
assertEquals(Arrays.asList(getSerializableIndexedRecord(testRecord1UpdateWithSameTime),
getSerializableIndexedRecord(testRecord2Update),
- getSerializableIndexedRecord(testRecord3Update), testRecord4,
testRecord6, getSerializableIndexedRecord(testRecord7)), actualRecords);
- assertEquals(1, readStats.getNumInserts());
- assertEquals(1, readStats.getNumDeletes());
- assertEquals(3, readStats.getNumUpdates());
- }
-
@Test
void readWithCommitTimeOrdering() throws IOException {
HoodieReadStats readStats = new HoodieReadStats();
@@ -239,43 +183,6 @@ class TestKeyBasedFileGroupRecordBuffer extends
BaseTestFileGroupRecordBuffer {
assertEquals(2, readStats.getNumUpdates());
}
- @Test
- void readWithCommitTimeOrderingWithRecords() throws IOException {
- HoodieReadStats readStats = new HoodieReadStats();
- TypedProperties properties = new TypedProperties();
- properties.setProperty(DELETE_KEY, "counter");
- properties.setProperty(DELETE_MARKER, "3");
- HoodieTableConfig tableConfig = mock(HoodieTableConfig.class);
-
when(tableConfig.getRecordMergeMode()).thenReturn(RecordMergeMode.COMMIT_TIME_ORDERING);
- when(tableConfig.getPartialUpdateMode()).thenReturn(Option.empty());
-
when(tableConfig.getTableVersion()).thenReturn(HoodieTableVersion.current());
- when(tableConfig.getRecordKeyFields()).thenReturn(Option.of(new String[]
{"record_key"}));
- when(tableConfig.getPartitionFields()).thenReturn(Option.empty());
- StorageConfiguration<?> storageConfiguration =
mock(StorageConfiguration.class);
- HoodieReaderContext<IndexedRecord> readerContext = new
HoodieAvroReaderContext(storageConfiguration, tableConfig, Option.empty(),
Option.empty());
- readerContext.setHasLogFiles(false);
- readerContext.setHasBootstrapBaseFile(false);
- readerContext.initRecordMerger(properties);
- FileGroupReaderSchemaHandler schemaHandler = new
FileGroupReaderSchemaHandler(readerContext, SCHEMA, SCHEMA, Option.empty(),
- properties, createMockMetaClient(tableConfig));
- readerContext.setSchemaHandler(schemaHandler);
- List<HoodieRecord> inputRecords =
convertToHoodieRecordsList(Arrays.asList(testRecord1UpdateWithSameTime,
testRecord2Update, testRecord3Update,
- testRecord4EarlierUpdate, testRecord7));
-
inputRecords.addAll(convertToHoodieRecordsListForDeletes(Arrays.asList(testRecord5DeleteByCustomMarker,
testRecord6DeleteByCustomMarker), true));
- KeyBasedFileGroupRecordBuffer<IndexedRecord> fileGroupRecordBuffer =
buildKeyBasedFileGroupRecordBuffer(readerContext, tableConfig, readStats, null,
- RecordMergeMode.COMMIT_TIME_ORDERING, Collections.singletonList("ts"),
properties, Option.of(inputRecords.iterator()));
-
-
fileGroupRecordBuffer.setBaseFileIterator(ClosableIterator.wrap(Arrays.asList(testRecord1,
testRecord2, testRecord3, testRecord4,
- testRecord5, testRecord6).iterator()));
-
- List<IndexedRecord> actualRecords =
getActualRecords(fileGroupRecordBuffer);
-
assertEquals(convertGenRecordsToSerializableIndexedRecords(Stream.of(testRecord1UpdateWithSameTime,
testRecord2Update,
- testRecord3Update, testRecord4EarlierUpdate, testRecord7)),
actualRecords);
- assertEquals(1, readStats.getNumInserts());
- assertEquals(2, readStats.getNumDeletes());
- assertEquals(4, readStats.getNumUpdates());
- }
-
@Test
void readWithCustomPayload() throws IOException {
HoodieReadStats readStats = new HoodieReadStats();
@@ -316,46 +223,6 @@ class TestKeyBasedFileGroupRecordBuffer extends
BaseTestFileGroupRecordBuffer {
assertEquals(0, readStats.getNumUpdates());
}
- @Test
- void readWithCustomPayloadWithRecords() throws IOException {
- HoodieReadStats readStats = new HoodieReadStats();
- TypedProperties properties = new TypedProperties();
- properties.setProperty(DELETE_KEY, "counter");
- properties.setProperty(DELETE_MARKER, "3");
- properties.setProperty(HoodieTableConfig.RECORD_MERGE_MODE.key(),
"CUSTOM");
- properties.setProperty(HoodieTableConfig.PAYLOAD_CLASS_NAME.key(),
TestKeyBasedFileGroupRecordBuffer.CustomPayload.class.getName());
- properties.setProperty(HoodieTableConfig.RECORD_MERGE_STRATEGY_ID.key(),
HoodieRecordMerger.PAYLOAD_BASED_MERGE_STRATEGY_UUID);
- HoodieTableConfig tableConfig = mock(HoodieTableConfig.class);
-
when(tableConfig.getPayloadClass()).thenReturn(TestKeyBasedFileGroupRecordBuffer.CustomPayload.class.getName());
- when(tableConfig.getRecordKeyFields()).thenReturn(Option.of(new String[]
{"record_key"}));
- when(tableConfig.getPartitionFields()).thenReturn(Option.empty());
- when(tableConfig.getRecordMergeMode()).thenReturn(RecordMergeMode.CUSTOM);
- when(tableConfig.getPartialUpdateMode()).thenReturn(Option.empty());
-
when(tableConfig.getRecordMergeStrategyId()).thenReturn(HoodieRecordMerger.PAYLOAD_BASED_MERGE_STRATEGY_UUID);
-
when(tableConfig.getTableVersion()).thenReturn(HoodieTableVersion.current());
- StorageConfiguration<?> storageConfiguration =
mock(StorageConfiguration.class);
- HoodieReaderContext<IndexedRecord> readerContext = new
HoodieAvroReaderContext(storageConfiguration, tableConfig, Option.empty(),
Option.empty());
- readerContext.setHasLogFiles(false);
- readerContext.setHasBootstrapBaseFile(false);
- readerContext.initRecordMerger(properties);
- FileGroupReaderSchemaHandler schemaHandler = new
FileGroupReaderSchemaHandler(readerContext, SCHEMA, SCHEMA, Option.empty(),
- properties, createMockMetaClient(tableConfig));
- readerContext.setSchemaHandler(schemaHandler);
- List<HoodieRecord> inputRecords =
convertToHoodieRecordsList(Arrays.asList(testRecord1UpdateWithSameTime,
testRecord2Update, testRecord3Update, testRecord4EarlierUpdate));
-
inputRecords.addAll(convertToHoodieRecordsListForDeletes(Arrays.asList(testRecord5DeleteByCustomMarker,
testRecord6DeleteByCustomMarker), true));
- KeyBasedFileGroupRecordBuffer<IndexedRecord> fileGroupRecordBuffer =
buildKeyBasedFileGroupRecordBuffer(readerContext, tableConfig, readStats, new
HoodieAvroRecordMerger(),
- RecordMergeMode.CUSTOM, Collections.singletonList("ts"), properties,
Option.of(inputRecords.iterator()));
-
-
fileGroupRecordBuffer.setBaseFileIterator(ClosableIterator.wrap(Arrays.asList(testRecord1,
testRecord2, testRecord3, testRecord4,
- testRecord5, testRecord6).iterator()));
-
- List<IndexedRecord> actualRecords =
getActualRecords(fileGroupRecordBuffer);
- assertEquals(Arrays.asList(testRecord1, testRecord2CustomPayloadExpected,
testRecord3UpdateCustomPayloadExpected), actualRecords);
- assertEquals(0, readStats.getNumInserts());
- assertEquals(3, readStats.getNumDeletes());
- assertEquals(2, readStats.getNumUpdates());
- }
-
@Test
void readWithCustomMerger() throws IOException {
HoodieReadStats readStats = new HoodieReadStats();
@@ -393,43 +260,4 @@ class TestKeyBasedFileGroupRecordBuffer extends
BaseTestFileGroupRecordBuffer {
assertEquals(3, readStats.getNumDeletes());
assertEquals(0, readStats.getNumUpdates());
}
-
- @Test
- void readWithCustomMergerWithRecords() throws IOException {
- HoodieReadStats readStats = new HoodieReadStats();
- TypedProperties properties = new TypedProperties();
- properties.setProperty(DELETE_KEY, "counter");
- properties.setProperty(DELETE_MARKER, "3");
- properties.setProperty(HoodieTableConfig.PAYLOAD_CLASS_NAME.key(),
CustomPayload.class.getName());
- HoodieTableConfig tableConfig = mock(HoodieTableConfig.class);
-
when(tableConfig.getPayloadClass()).thenReturn(CustomPayload.class.getName());
- when(tableConfig.getRecordKeyFields()).thenReturn(Option.of(new String[]
{"record_key"}));
- when(tableConfig.getPartitionFields()).thenReturn(Option.empty());
- when(tableConfig.getRecordMergeMode()).thenReturn(RecordMergeMode.CUSTOM);
- when(tableConfig.getPartialUpdateMode()).thenReturn(Option.empty());
-
when(tableConfig.getRecordMergeStrategyId()).thenReturn(HoodieRecordMerger.PAYLOAD_BASED_MERGE_STRATEGY_UUID);
-
when(tableConfig.getTableVersion()).thenReturn(HoodieTableVersion.current());
-
- StorageConfiguration<?> storageConfiguration =
mock(StorageConfiguration.class);
- HoodieReaderContext<IndexedRecord> readerContext = new
HoodieAvroReaderContext(storageConfiguration, tableConfig, Option.empty(),
Option.empty());
- readerContext.setHasLogFiles(false);
- readerContext.setHasBootstrapBaseFile(false);
- readerContext.initRecordMerger(properties);
- FileGroupReaderSchemaHandler schemaHandler = new
FileGroupReaderSchemaHandler(readerContext, SCHEMA, SCHEMA, Option.empty(),
- properties, createMockMetaClient(tableConfig));
- readerContext.setSchemaHandler(schemaHandler);
- List<HoodieRecord> inputRecords =
convertToHoodieRecordsList(Arrays.asList(testRecord1UpdateWithSameTime,
testRecord2Update, testRecord3Update, testRecord4EarlierUpdate));
-
inputRecords.addAll(convertToHoodieRecordsListForDeletes(Arrays.asList(testRecord5DeleteByCustomMarker,
testRecord6DeleteByCustomMarker), true));
- KeyBasedFileGroupRecordBuffer<IndexedRecord> fileGroupRecordBuffer =
buildKeyBasedFileGroupRecordBuffer(readerContext, tableConfig, readStats, new
TestKeyBasedFileGroupRecordBuffer.CustomMerger(),
- RecordMergeMode.CUSTOM, Collections.singletonList("ts"), properties,
Option.of(inputRecords.iterator()));
-
-
fileGroupRecordBuffer.setBaseFileIterator(ClosableIterator.wrap(Arrays.asList(testRecord1,
testRecord2, testRecord3, testRecord4,
- testRecord5, testRecord6).iterator()));
-
- List<IndexedRecord> actualRecords =
getActualRecords(fileGroupRecordBuffer);
- assertEquals(Arrays.asList(testRecord1, testRecord2CustomPayloadExpected,
testRecord3UpdateCustomPayloadExpected), actualRecords);
- assertEquals(0, readStats.getNumInserts());
- assertEquals(3, readStats.getNumDeletes());
- assertEquals(2, readStats.getNumUpdates());
- }
}