Skip to content

Commit e8be1f7

Browse files
wuchongXuQianJin-Stars
authored andcommitted
fix failed cases
1 parent 48b9beb commit e8be1f7

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

fluss-common/src/main/java/org/apache/fluss/row/BinaryWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ static BinaryWriter.ValueWriter createValueWriter(
114114
*
115115
* @param elementType the element type
116116
*/
117-
private static BinaryWriter.ValueWriter createNotNullValueWriter(
117+
static BinaryWriter.ValueWriter createNotNullValueWriter(
118118
DataType elementType, @Nullable BinaryRowFormat rowFormat) {
119119
switch (elementType.getTypeRoot()) {
120120
case CHAR:

fluss-common/src/main/java/org/apache/fluss/row/serializer/ArraySerializer.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,15 @@
2626
import org.apache.fluss.row.array.AlignedArray;
2727
import org.apache.fluss.row.array.CompactedArray;
2828
import org.apache.fluss.row.array.IndexedArray;
29+
import org.apache.fluss.row.array.PrimitiveBinaryArray;
2930
import org.apache.fluss.types.DataType;
3031

3132
import java.io.Serializable;
3233

34+
import static org.apache.fluss.row.BinaryRow.BinaryRowFormat.ALIGNED;
35+
import static org.apache.fluss.row.BinaryRow.BinaryRowFormat.COMPACTED;
36+
import static org.apache.fluss.row.BinaryRow.BinaryRowFormat.INDEXED;
37+
3338
/** Serializer for {@link InternalArray} to {@link BinaryArray} and {@code CompactedArray}. */
3439
public class ArraySerializer implements Serializable {
3540
private static final long serialVersionUID = 1L;
@@ -76,7 +81,13 @@ private class BinaryArraySerializer {
7681

7782
public BinaryArray toAlignedArray(InternalArray from) {
7883
if (from instanceof BinaryArray) {
79-
return (BinaryArray) from;
84+
if (from instanceof PrimitiveBinaryArray
85+
|| rowFormat == INDEXED && from instanceof IndexedArray
86+
|| rowFormat == COMPACTED && from instanceof CompactedArray
87+
|| rowFormat == ALIGNED && from instanceof AlignedArray) {
88+
// directly return the original array iff the array is in the expected format
89+
return (BinaryArray) from;
90+
}
8091
}
8192

8293
if (from instanceof GenericArray) {

fluss-common/src/main/java/org/apache/fluss/row/serializer/RowSerializer.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,21 @@
2020
import org.apache.fluss.row.BinaryRow;
2121
import org.apache.fluss.row.BinaryRow.BinaryRowFormat;
2222
import org.apache.fluss.row.InternalRow;
23+
import org.apache.fluss.row.aligned.AlignedRow;
24+
import org.apache.fluss.row.compacted.CompactedRow;
2325
import org.apache.fluss.row.encode.AlignedRowEncoder;
2426
import org.apache.fluss.row.encode.CompactedRowEncoder;
2527
import org.apache.fluss.row.encode.IndexedRowEncoder;
2628
import org.apache.fluss.row.encode.RowEncoder;
29+
import org.apache.fluss.row.indexed.IndexedRow;
2730
import org.apache.fluss.types.DataType;
2831

2932
import java.io.Serializable;
3033

34+
import static org.apache.fluss.row.BinaryRow.BinaryRowFormat.ALIGNED;
35+
import static org.apache.fluss.row.BinaryRow.BinaryRowFormat.COMPACTED;
36+
import static org.apache.fluss.row.BinaryRow.BinaryRowFormat.INDEXED;
37+
3138
/** Serializer for {@link InternalRow} to {@link BinaryRow}. */
3239
public class RowSerializer implements Serializable {
3340
private static final long serialVersionUID = 1L;
@@ -53,7 +60,12 @@ public RowSerializer(DataType[] fieldTypes, BinaryRowFormat format) {
5360
*/
5461
public BinaryRow toBinaryRow(InternalRow from) {
5562
if (from instanceof BinaryRow) {
56-
return (BinaryRow) from;
63+
if (format == INDEXED && from instanceof IndexedRow
64+
|| format == COMPACTED && from instanceof CompactedRow
65+
|| format == ALIGNED && from instanceof AlignedRow) {
66+
// directly return the original row iff the row is in the expected format
67+
return (BinaryRow) from;
68+
}
5769
}
5870

5971
if (serializer == null) {

0 commit comments

Comments
 (0)