Skip to content

Commit 40e6c4c

Browse files
committed
fix case
1 parent 533583c commit 40e6c4c

3 files changed

Lines changed: 12 additions & 11 deletions

File tree

paimon-core/src/test/java/org/apache/paimon/mergetree/compact/MergeFunctionTestUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,12 @@ public static List<ReusingTestData> getExpectedForAggSum(
107107
new ReusingTestData(last.key, last.sequenceNumber, RowKind.INSERT, sum));
108108
} else {
109109
if (group.stream().noneMatch(data -> data.valueKind == RowKind.INSERT)) {
110-
// No insert: fill the pk and left nullable fields to null; sequenceNumber =
111-
// latest
110+
// No insert: initRow now sets all fields including nullable ones,
111+
// so the value is from the last DELETE record
112112
ReusingTestData last = group.get(group.size() - 1);
113113
expected.add(
114114
new ReusingTestData(
115-
last.key, last.sequenceNumber, RowKind.DELETE, null));
115+
last.key, last.sequenceNumber, RowKind.DELETE, last.value));
116116
} else {
117117
RowKind rowKind = null;
118118
Long sum = null;
@@ -122,7 +122,7 @@ public static List<ReusingTestData> getExpectedForAggSum(
122122
sum = sum == null ? data.value : sum + data.value;
123123
} else {
124124
rowKind = RowKind.DELETE;
125-
sum = null;
125+
sum = data.value;
126126
}
127127
}
128128
ReusingTestData last = group.get(group.size() - 1);

paimon-core/src/test/java/org/apache/paimon/mergetree/compact/PartialUpdateMergeFunctionTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,7 @@ public void testInitRowWithNullableFieldOnDelete() {
919919
RowType rowType =
920920
RowType.of(
921921
DataTypes.INT().notNull(),
922-
DataTypes.INT(),
922+
DataTypes.INT().notNull(),
923923
DataTypes.INT(),
924924
DataTypes.INT());
925925
MergeFunction<KeyValue> func =
@@ -930,9 +930,9 @@ public void testInitRowWithNullableFieldOnDelete() {
930930
// insert some data first
931931
add(func, 1, 3, 5, 7);
932932
// send a DELETE with nullable field as null, triggers initRow
933-
add(func, RowKind.DELETE, 1, null, 2, null);
933+
add(func, RowKind.DELETE, 1, 2, 2, null);
934934
// after delete with removeRecordOnDelete, row is re-initialized via initRow
935-
validate(func, 1, null, 2, null);
935+
validate(func, 1, 2, 2, null);
936936
}
937937

938938
private void add(MergeFunction<KeyValue> function, Integer... f) {

paimon-core/src/test/java/org/apache/paimon/mergetree/compact/aggregate/AggregateMergeFunctionTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,22 +152,23 @@ void testInitRowWithNullableFieldOnDelete() {
152152
RowType.builder()
153153
.fields(
154154
new DataType[] {
155+
DataTypes.INT().notNull(),
155156
DataTypes.INT().notNull(),
156157
DataTypes.INT(),
157158
DataTypes.INT()
158159
},
159-
new String[] {"k", "a", "b"})
160+
new String[] {"k", "a", "b", "c"})
160161
.build(),
161162
Collections.singletonList("k"))
162163
.create();
163164
aggregateFunction.reset();
164165

165166
// insert some data first
166-
aggregateFunction.add(value(1, 3, 5));
167+
aggregateFunction.add(value(1, 0, 0, 5));
167168
// send a DELETE with nullable field as null, triggers initRow
168-
aggregateFunction.add(deleteValue(1, null, 2));
169+
aggregateFunction.add(deleteValue(1, 2, 2, null));
169170
// after delete with removeRecordOnDelete, row is re-initialized via initRow
170-
assertThat(aggregateFunction.getResult().value()).isEqualTo(GenericRow.of(1, null, 2));
171+
assertThat(aggregateFunction.getResult().value()).isEqualTo(GenericRow.of(1, 2, 2, null));
171172
}
172173

173174
private KeyValue value(Integer... values) {

0 commit comments

Comments
 (0)