in bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java [302:341]
public static String selectByIds(
TableMetaData tableMetaData, String databaseId, Collection<? extends Serializable> ids) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
sql.SELECT(tableMetaData.getBaseColumns());
sql.FROM(tableMetaData.getTableName());
if (ids == null || ids.isEmpty()) {
sql.WHERE("1 = 0");
break;
}
StringBuilder idStr = new StringBuilder();
for (int i = 0; i < ids.size(); i++) {
idStr.append(getTokenParam("arg0[" + i + "]")).append(",");
}
idStr.deleteCharAt(idStr.lastIndexOf(","));
sql.WHERE(tableMetaData.getPkColumn() + " IN ( " + idStr + " )");
break;
}
case POSTGRESQL: {
String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining(","));
String baseColumns = tableMetaData.getBaseColumns();
if (baseColumns.toLowerCase().contains("user.")) {
baseColumns = baseColumns.replace("user.", "\"user\".");
}
sql.SELECT(baseColumns);
sql.FROM(keywordsFormat(tableMetaData.getTableName(), DBType.POSTGRESQL));
sql.WHERE(tableMetaData.getPkColumn() + " in (" + idsStr + ")");
break;
}
default: {
log.error("Unsupported data source");
}
}
return sql.toString();
}