Skip to content

Commit

Permalink
[Improve][[Jdbc]sink sql support custom field.(apache#6515)-fix code …
Browse files Browse the repository at this point in the history
…style
  • Loading branch information
rtyuy committed Mar 20, 2024
1 parent 0faf4a9 commit 11b50a4
Showing 1 changed file with 20 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -637,15 +637,29 @@ public static FieldNamedPreparedStatement prepareStatement(
HashMap<String, List<Integer>> parameterMap = new HashMap<>();
parsedSQL = parseNamedStatement(sql, parameterMap);
// currently, the statements must contain all the field parameters
parameterMap.keySet().forEach(namedParameter -> {
boolean namedParameterExist = Arrays.asList(fieldNames).stream().anyMatch(field -> field.equals(namedParameter));
checkArgument(namedParameterExist, String.format("Named parameters [%s] not in source columns, check SQL: %s", namedParameter, sql));
});
parameterMap
.keySet()
.forEach(
namedParameter -> {
boolean namedParameterExist =
Arrays.asList(fieldNames).stream()
.anyMatch(field -> field.equals(namedParameter));
checkArgument(
namedParameterExist,
String.format(
"Named parameters [%s] not in source columns, check SQL: %s",
namedParameter, sql));
});

for (int i = 0; i < fieldNames.length; i++) {
String fieldName = fieldNames[i];
boolean parameterExist = parameterMap.keySet().stream().anyMatch(parameter -> parameter.equals(fieldName));
indexMapping[i] = parameterExist ? parameterMap.get(fieldName).stream().mapToInt(v -> v).toArray() : new int[0];
boolean parameterExist =
parameterMap.keySet().stream()
.anyMatch(parameter -> parameter.equals(fieldName));
indexMapping[i] =
parameterExist
? parameterMap.get(fieldName).stream().mapToInt(v -> v).toArray()
: new int[0];
}
}
log.info("PrepareStatement sql is:\n{}\n", parsedSQL);
Expand Down

0 comments on commit 11b50a4

Please sign in to comment.