Skip to content

Commit 8c54825

Browse files
fix failed cases
1 parent e8be1f7 commit 8c54825

File tree

20 files changed

+240
-159
lines changed

20 files changed

+240
-159
lines changed

fluss-client/pom.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,6 @@
113113
<include>*:*</include>
114114
</includes>
115115
</artifactSet>
116-
<filters>
117-
<filter>
118-
<artifact>*</artifact>
119-
<excludes>
120-
<exclude>LICENSE*</exclude>
121-
</excludes>
122-
</filter>
123-
</filters>
124116
</configuration>
125117
</execution>
126118
</executions>

fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/DefaultCompletedFetchTest.java

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,21 +227,32 @@ void testComplexTypeFetch() throws Exception {
227227
new Object[] {
228228
1,
229229
new String[] {"a", "b"},
230-
new Object[] {new int[] {1, 2}, new int[] {3, 4}}
230+
new Object[] {new int[] {1, 2}, new int[] {3, 4}},
231+
new Object[] {10, new Object[] {20, "nested"}, "row1"}
231232
},
232233
new Object[] {
233-
2, new String[] {"c", null}, new Object[] {null, new int[] {3, 4}}
234+
2,
235+
new String[] {"c", null},
236+
new Object[] {null, new int[] {3, 4}},
237+
new Object[] {30, new Object[] {40, "test"}, "row2"}
234238
},
235239
new Object[] {
236240
3,
237241
new String[] {"e", "f"},
238-
new Object[] {new int[] {5, 6, 7}, new int[] {8}}
242+
new Object[] {new int[] {5, 6, 7}, new int[] {8}},
243+
new Object[] {50, new Object[] {60, "value"}, "row3"}
239244
});
240245
Schema schema =
241246
Schema.newBuilder()
242247
.column("a", DataTypes.INT())
243248
.column("b", DataTypes.ARRAY(DataTypes.STRING()))
244249
.column("c", DataTypes.ARRAY(DataTypes.ARRAY(DataTypes.INT())))
250+
.column(
251+
"d",
252+
DataTypes.ROW(
253+
DataTypes.INT(),
254+
DataTypes.ROW(DataTypes.INT(), DataTypes.STRING()),
255+
DataTypes.STRING()))
245256
.build();
246257
TableInfo tableInfo =
247258
TableInfo.of(
@@ -299,6 +310,17 @@ void testComplexTypeFetch() throws Exception {
299310
.isEqualTo(Arrays.deepToString((Object[]) complexData.get(i)[1]));
300311
assertThat(row.getArray(2).toString())
301312
.isEqualTo(Arrays.deepToString((Object[]) complexData.get(i)[2]));
313+
InternalRow nestedRow = row.getRow(3, 3);
314+
assertThat(nestedRow).isNotNull();
315+
assertThat(nestedRow.getInt(0)).isEqualTo(((Object[]) complexData.get(i)[3])[0]);
316+
InternalRow deeplyNestedRow = nestedRow.getRow(1, 2);
317+
assertThat(deeplyNestedRow).isNotNull();
318+
assertThat(deeplyNestedRow.getInt(0))
319+
.isEqualTo(((Object[]) ((Object[]) complexData.get(i)[3])[1])[0]);
320+
assertThat(deeplyNestedRow.getString(1).toString())
321+
.isEqualTo(((Object[]) ((Object[]) complexData.get(i)[3])[1])[1]);
322+
assertThat(nestedRow.getString(2).toString())
323+
.isEqualTo(((Object[]) complexData.get(i)[3])[2]);
302324
}
303325
}
304326

fluss-common/src/test/java/org/apache/fluss/row/TestInternalRowGenerator.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,15 @@ public static RowType createAllRowType() {
6363
new DataField("f17", DataTypes.TIMESTAMP_LTZ(1)),
6464
new DataField("f18", DataTypes.TIMESTAMP_LTZ(5)),
6565
new DataField("f19", DataTypes.ARRAY(DataTypes.INT())),
66-
// TODO: Add Map and Row fields in Issue #1973
6766
new DataField(
6867
"f20",
68+
DataTypes.ARRAY(DataTypes.FLOAT().copy(false))), // vector embedding type
69+
new DataField(
70+
"f21",
71+
DataTypes.ARRAY(DataTypes.ARRAY(DataTypes.STRING()))), // nested array
72+
// TODO: Add Map and Row fields in Issue #1973
73+
new DataField(
74+
"f22",
6975
DataTypes.ROW(
7076
new DataField("u1", DataTypes.INT()),
7177
new DataField(
@@ -123,6 +129,17 @@ public static IndexedRow genIndexedRowForAllType() {
123129
GenericArray array1 = GenericArray.of(1, 2, 3, 4, 5, -11, null, 444, 102234);
124130
setRandomNull(writers[19], writer, 19, rnd, array1);
125131

132+
GenericArray array2 =
133+
GenericArray.of(0.1f, 1.1f, -0.5f, 6.6f, Float.MAX_VALUE, Float.MIN_VALUE);
134+
setRandomNull(writers[20], writer, 20, rnd, array2);
135+
136+
GenericArray array3 =
137+
GenericArray.of(
138+
GenericArray.of(fromString("a"), null, fromString("c")),
139+
null,
140+
GenericArray.of(fromString("hello"), fromString("world")));
141+
setRandomNull(writers[21], writer, 21, rnd, array3);
142+
126143
// TODO: Map type support will be added in Issue #1973
127144
// Map<Object, Object> javaMap = new HashMap<>();
128145
// javaMap.put(0, null);
@@ -131,9 +148,9 @@ public static IndexedRow genIndexedRowForAllType() {
131148
// GenericMap map = new GenericMap(javaMap);
132149
// setRandomNull(writers[20], writer, 20, rnd, map);
133150

134-
GenericRow innerRow = GenericRow.of(20);
151+
GenericRow innerRow = GenericRow.of(22);
135152
GenericRow genericRow = GenericRow.of(123, innerRow, BinaryString.fromString("Test"));
136-
setRandomNull(writers[20], writer, 20, rnd, genericRow);
153+
setRandomNull(writers[22], writer, 22, rnd, genericRow);
137154

138155
IndexedRow row = new IndexedRow(dataTypes);
139156
row.pointTo(writer.segment(), 0, writer.position());

fluss-common/src/test/java/org/apache/fluss/row/indexed/IndexedRowReaderTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,20 @@ private void assertAllTypeEqualsForReader(IndexedRowReader reader) {
109109
assertThatArray(reader.readArray(dataTypes[19]))
110110
.withElementType(DataTypes.INT())
111111
.isEqualTo(GenericArray.of(1, 2, 3, 4, 5, -11, null, 444, 102234));
112+
assertThatArray(reader.readArray(dataTypes[20]))
113+
.withElementType(DataTypes.FLOAT())
114+
.isEqualTo(
115+
GenericArray.of(0.1f, 1.1f, -0.5f, 6.6f, Float.MAX_VALUE, Float.MIN_VALUE));
116+
assertThatArray(reader.readArray(dataTypes[21]))
117+
.withElementType(DataTypes.ARRAY(DataTypes.STRING()))
118+
.isEqualTo(
119+
GenericArray.of(
120+
GenericArray.of(fromString("a"), null, fromString("c")),
121+
null,
122+
GenericArray.of(fromString("hello"), fromString("world"))));
112123
InternalRow nestedRow =
113-
reader.readRow(dataTypes[20].getChildren().toArray(new DataType[0]));
114-
GenericRow expectedInnerRow = GenericRow.of(20);
124+
reader.readRow(dataTypes[22].getChildren().toArray(new DataType[0]));
125+
GenericRow expectedInnerRow = GenericRow.of(22);
115126
GenericRow expectedNestedRow = GenericRow.of(123, expectedInnerRow, fromString("Test"));
116127
assertThatRow(nestedRow)
117128
.withSchema(

fluss-common/src/test/java/org/apache/fluss/row/indexed/IndexedRowTest.java

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ void testWriterAndIndexedRowGetter() {
7474

7575
assertAllTypeEquals(row);
7676

77-
assertThat(row.getFieldCount()).isEqualTo(21);
77+
assertThat(row.getFieldCount()).isEqualTo(23);
7878
assertThat(row.anyNull()).isFalse();
7979
assertThat(row.anyNull(new int[] {0, 1})).isFalse();
8080
}
@@ -204,10 +204,21 @@ public static IndexedRowWriter genRecordForAllTypes(DataType[] dataTypes) {
204204
writers[17].writeValue(writer, 17, TimestampLtz.fromEpochMillis(1698235273182L));
205205
writers[18].writeValue(writer, 18, TimestampLtz.fromEpochMillis(1698235273182L));
206206
writers[19].writeValue(writer, 19, GenericArray.of(1, 2, 3, 4, 5, -11, null, 444, 102234));
207-
208-
GenericRow innerRow = GenericRow.of(20);
207+
writers[20].writeValue(
208+
writer,
209+
20,
210+
GenericArray.of(0.1f, 1.1f, -0.5f, 6.6f, Float.MAX_VALUE, Float.MIN_VALUE));
211+
writers[21].writeValue(
212+
writer,
213+
21,
214+
GenericArray.of(
215+
GenericArray.of(fromString("a"), null, fromString("c")),
216+
null,
217+
GenericArray.of(fromString("hello"), fromString("world"))));
218+
219+
GenericRow innerRow = GenericRow.of(22);
209220
GenericRow nestedRow = GenericRow.of(123, innerRow, fromString("Test"));
210-
writers[20].writeValue(writer, 20, nestedRow);
221+
writers[22].writeValue(writer, 22, nestedRow);
211222

212223
return writer;
213224
}
@@ -236,9 +247,20 @@ public static void assertAllTypeEquals(InternalRow row) {
236247
assertThatArray(row.getArray(19))
237248
.withElementType(DataTypes.INT())
238249
.isEqualTo(GenericArray.of(1, 2, 3, 4, 5, -11, null, 444, 102234));
239-
GenericRow expectedInnerRow = GenericRow.of(20);
250+
assertThatArray(row.getArray(20))
251+
.withElementType(DataTypes.FLOAT().copy(false))
252+
.isEqualTo(
253+
GenericArray.of(0.1f, 1.1f, -0.5f, 6.6f, Float.MAX_VALUE, Float.MIN_VALUE));
254+
assertThatArray(row.getArray(21))
255+
.withElementType(DataTypes.ARRAY(DataTypes.STRING()))
256+
.isEqualTo(
257+
GenericArray.of(
258+
GenericArray.of(fromString("a"), null, fromString("c")),
259+
null,
260+
GenericArray.of(fromString("hello"), fromString("world"))));
261+
GenericRow expectedInnerRow = GenericRow.of(22);
240262
GenericRow expectedNestedRow = GenericRow.of(123, expectedInnerRow, fromString("Test"));
241-
assertThatRow(row.getRow(20, 3))
263+
assertThatRow(row.getRow(22, 3))
242264
.withSchema(
243265
DataTypes.ROW(
244266
DataTypes.FIELD("u1", DataTypes.INT()),

fluss-common/src/test/java/org/apache/fluss/testutils/DataTestUtils.java

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,16 @@ public static GenericRow row(Object... objects) {
104104
return row;
105105
}
106106

107+
public static GenericRow row(RowType rowType, Object... objects) {
108+
GenericRow row = new GenericRow(objects.length);
109+
List<DataType> fieldTypes = rowType.getChildren();
110+
for (int i = 0; i < objects.length; i++) {
111+
Object value = toInternalObject(objects[i], fieldTypes.get(i));
112+
row.setField(i, value);
113+
}
114+
return row;
115+
}
116+
107117
private static Object toInternalObject(Object obj) {
108118
if (obj == null) {
109119
return null;
@@ -124,6 +134,40 @@ private static Object toInternalObject(Object obj) {
124134
}
125135
}
126136

137+
private static Object toInternalObject(Object obj, DataType dataType) {
138+
if (obj == null) {
139+
return null;
140+
}
141+
if (obj instanceof String) {
142+
return BinaryString.fromString((String) obj);
143+
} else if (obj instanceof Object[]) {
144+
DataTypeRoot typeRoot = dataType.getTypeRoot();
145+
if (typeRoot == DataTypeRoot.ROW) {
146+
RowType rowType = (RowType) dataType;
147+
return row(rowType, (Object[]) obj);
148+
} else if (typeRoot == DataTypeRoot.ARRAY) {
149+
DataType elementType = dataType.getChildren().get(0);
150+
Object[] array = (Object[]) obj;
151+
Object[] internalArray = new Object[array.length];
152+
for (int j = 0; j < array.length; j++) {
153+
internalArray[j] = toInternalObject(array[j], elementType);
154+
}
155+
return new GenericArray(internalArray);
156+
} else {
157+
Object[] array = (Object[]) obj;
158+
Object[] internalArray = new Object[array.length];
159+
for (int j = 0; j < array.length; j++) {
160+
internalArray[j] = toInternalObject(array[j], dataType);
161+
}
162+
return new GenericArray(internalArray);
163+
}
164+
} else if (obj instanceof int[]) {
165+
return new GenericArray((int[]) obj);
166+
} else {
167+
return obj;
168+
}
169+
}
170+
127171
public static CompactedRow compactedRow(RowType rowType, Object[] objects) {
128172
return genCompacted(rowType, objects);
129173
}
@@ -474,7 +518,7 @@ public static MemoryLogRecords createMemoryLogRecords(
474518
throws Exception {
475519
if (logFormat == LogFormat.ARROW) {
476520
List<InternalRow> rows =
477-
objects.stream().map(DataTestUtils::row).collect(Collectors.toList());
521+
objects.stream().map(objs -> row(rowType, objs)).collect(Collectors.toList());
478522
return createArrowMemoryLogRecords(
479523
rowType,
480524
offsetBase,

fluss-filesystems/fluss-fs-obs/pom.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,6 @@
230230
<exclude>.gitkeep</exclude>
231231
<exclude>mime.types</exclude>
232232
<exclude>mozilla/**</exclude>
233-
<exclude>LICENSE.txt</exclude>
234-
<exclude>license/LICENSE*</exclude>
235233
<exclude>okhttp3/internal/publicsuffix/NOTICE</exclude>
236234
<exclude>NOTICE</exclude>
237235
</excludes>

fluss-filesystems/fluss-fs-oss/pom.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,6 @@
214214
<exclude>.gitkeep</exclude>
215215
<exclude>mime.types</exclude>
216216
<exclude>mozilla/**</exclude>
217-
<exclude>LICENSE.txt</exclude>
218-
<exclude>license/LICENSE*</exclude>
219217
<exclude>okhttp3/internal/publicsuffix/NOTICE</exclude>
220218
<exclude>NOTICE</exclude>
221219
</excludes>

fluss-flink/fluss-flink-1.18/pom.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,6 @@
219219
<include>org.apache.fluss:fluss-client</include>
220220
</includes>
221221
</artifactSet>
222-
<filters>
223-
<filter>
224-
<artifact>*</artifact>
225-
<excludes>
226-
<exclude>LICENSE*</exclude>
227-
</excludes>
228-
</filter>
229-
</filters>
230222
</configuration>
231223
</execution>
232224
</executions>

fluss-flink/fluss-flink-1.19/pom.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -213,14 +213,6 @@
213213
<include>org.apache.fluss:fluss-client</include>
214214
</includes>
215215
</artifactSet>
216-
<filters>
217-
<filter>
218-
<artifact>*</artifact>
219-
<excludes>
220-
<exclude>LICENSE*</exclude>
221-
</excludes>
222-
</filter>
223-
</filters>
224216
</configuration>
225217
</execution>
226218
</executions>

0 commit comments

Comments
 (0)