|
18 | 18 | package org.apache.fluss.flink.utils; |
19 | 19 |
|
20 | 20 | import org.apache.fluss.client.table.scanner.ScanRecord; |
| 21 | +import org.apache.fluss.flink.row.FlinkAsFlussArray; |
21 | 22 | import org.apache.fluss.record.ChangeType; |
22 | 23 | import org.apache.fluss.record.LogRecord; |
| 24 | +import org.apache.fluss.row.BinaryString; |
23 | 25 | import org.apache.fluss.row.InternalRow; |
24 | 26 | import org.apache.fluss.row.indexed.IndexedRow; |
25 | 27 | import org.apache.fluss.row.indexed.IndexedRowWriter; |
26 | 28 | import org.apache.fluss.types.DataType; |
| 29 | +import org.apache.fluss.types.DataTypes; |
27 | 30 | import org.apache.fluss.types.RowType; |
28 | 31 | import org.apache.fluss.utils.DateTimeUtils; |
29 | 32 |
|
|
36 | 39 | import java.time.LocalDate; |
37 | 40 | import java.time.LocalTime; |
38 | 41 |
|
| 42 | +import static org.apache.fluss.row.BinaryString.fromString; |
39 | 43 | import static org.apache.fluss.row.TestInternalRowGenerator.createAllRowType; |
40 | 44 | import static org.apache.fluss.row.TestInternalRowGenerator.createAllTypes; |
41 | 45 | import static org.apache.fluss.row.indexed.IndexedRowTest.genRecordForAllTypes; |
@@ -93,7 +97,36 @@ void testConverter() throws Exception { |
93 | 97 |
|
94 | 98 | assertThat(flinkRow.getTimestamp(17, 1).toString()) |
95 | 99 | .isEqualTo("2023-10-25T12:01:13.182"); |
96 | | - assertThat(flinkRow.isNullAt(18)).isTrue(); |
| 100 | + assertThat(flinkRow.getTimestamp(18, 5).toString()) |
| 101 | + .isEqualTo("2023-10-25T12:01:13.182"); |
| 102 | + |
| 103 | + // array of int |
| 104 | + Integer[] array1 = |
| 105 | + new FlinkAsFlussArray(flinkRow.getArray(19)).toObjectArray(DataTypes.INT()); |
| 106 | + assertThat(array1).isEqualTo(new Integer[] {1, 2, 3, 4, 5, -11, null, 444, 102234}); |
| 107 | + |
| 108 | + // array of float |
| 109 | + Float[] array2 = |
| 110 | + new FlinkAsFlussArray(flinkRow.getArray(20)).toObjectArray(DataTypes.FLOAT()); |
| 111 | + assertThat(array2) |
| 112 | + .isEqualTo( |
| 113 | + new Float[] { |
| 114 | + 0.1f, 1.1f, -0.5f, 6.6f, Float.MAX_VALUE, Float.MIN_VALUE |
| 115 | + }); |
| 116 | + |
| 117 | + // array of string |
| 118 | + assertThat(flinkRow.getArray(21).size()).isEqualTo(3); |
| 119 | + BinaryString[] stringArray1 = |
| 120 | + new FlinkAsFlussArray(flinkRow.getArray(21).getArray(0)) |
| 121 | + .toObjectArray(DataTypes.STRING()); |
| 122 | + assertThat(stringArray1) |
| 123 | + .isEqualTo(new BinaryString[] {fromString("a"), null, fromString("c")}); |
| 124 | + assertThat(flinkRow.getArray(21).isNullAt(1)).isTrue(); |
| 125 | + BinaryString[] stringArray2 = |
| 126 | + new FlinkAsFlussArray(flinkRow.getArray(21).getArray(2)) |
| 127 | + .toObjectArray(DataTypes.STRING()); |
| 128 | + assertThat(stringArray2) |
| 129 | + .isEqualTo(new BinaryString[] {fromString("hello"), fromString("world")}); |
97 | 130 | } |
98 | 131 | } |
99 | 132 |
|
|
0 commit comments