in adb2client/src/main/java/com/alibaba/cloud/analyticdb/adbclient/AdbClient.java [591:615]
private void dealColumnConf(String tableName, List<String> tableColumns) {
List<String> userConfiguredColumns = databaseConfig.getColumns(tableName);
if (null == userConfiguredColumns || userConfiguredColumns.isEmpty()) {
throw new AdbClientException(AdbClientException.CONFIG_ERROR, "Config is error. Do not have column list", null);
} else {
if (1 == userConfiguredColumns.size() && ALL_COLUMN_CHARACTER.equals(userConfiguredColumns.get(0))) {
this.isAllColumn.put(tableName, true);
databaseConfig.setColumns(tableName, tableColumns);
} else if (userConfiguredColumns.size() > tableColumns.size()) {
throw new AdbClientException(AdbClientException.CONFIG_ERROR, String.format("Database config is error. The count of writer columns %s is bigger than the count of read table's columns {}.",
userConfiguredColumns.size(), tableColumns.size()), null);
} else {
makeSureNoValueDuplicate(userConfiguredColumns, false);
List<String> removeQuotedColumns = new ArrayList<String>();
for (String each : userConfiguredColumns) {
if (each.startsWith(COLUMN_QUOTE_CHARACTER) && each.endsWith(COLUMN_QUOTE_CHARACTER)) {
removeQuotedColumns.add(each.substring(1, each.length() - 1));
} else {
removeQuotedColumns.add(each);
}
}
makeSureBInA(tableColumns, removeQuotedColumns, false);
}
}
}