This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new ea6e7784b61 branch-3.0: [fix](hudi) check requiredFields exists in
splitHudiColumnNames in HudiJniScanner #51430 (#51503)
ea6e7784b61 is described below
commit ea6e7784b618ab33b7913f7da7cebe8c33b3c62c
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jun 12 10:14:57 2025 +0800
branch-3.0: [fix](hudi) check requiredFields exists in splitHudiColumnNames
in HudiJniScanner #51430 (#51503)
Cherry-picked from #51430
Co-authored-by: Socrates <[email protected]>
---
.../java/org/apache/doris/hudi/HadoopHudiJniScanner.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git
a/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
b/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
index f163be11aa2..be7e31a115e 100644
---
a/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
+++
b/fe/be-java-extensions/hadoop-hudi-scanner/src/main/java/org/apache/doris/hudi/HadoopHudiJniScanner.java
@@ -170,9 +170,6 @@ public class HadoopHudiJniScanner extends JniScanner {
for (int i = 0; i < fields.length; i++) {
Object fieldData =
rowInspector.getStructFieldData(rowData, structFields[i]);
columnValue.setRow(fieldData);
- // LOG.info("rows: {}, column: {}, col name: {}, col
type: {}, inspector: {}",
- // numRows, i, types[i].getName(),
types[i].getType().name(),
- // fieldInspectors[i].getTypeName());
columnValue.setField(types[i], fieldInspectors[i]);
appendData(i, columnValue);
}
@@ -211,9 +208,15 @@ public class HadoopHudiJniScanner extends JniScanner {
.boxed()
.collect(Collectors.toMap(i ->
splitHudiColumnNames[i], i -> hudiColumnTypes[i]));
- requiredTypes = Arrays.stream(requiredFields)
- .map(field -> ColumnType.parseType(field,
hudiColNameToType.get(field)))
- .toArray(ColumnType[]::new);
+ requiredTypes = new ColumnType[requiredFields.length];
+ for (int i = 0; i < requiredFields.length; i++) {
+ String requiredField = requiredFields[i];
+ if (!hudiColNameToType.containsKey(requiredField)) {
+ throw new IllegalArgumentException(
+ "Required field " + requiredField + " not found in
Hudi column names: " + splitHudiColumnNames);
+ }
+ requiredTypes[i] = ColumnType.parseType(requiredField,
hudiColNameToType.get(requiredField));
+ }
requiredColumnIds = Arrays.stream(requiredFields)
.mapToInt(hudiColNameToIdx::get)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]