in src/main/java/com/datacompare/service/FetchMetadata.java [277:308]
private String getColumns(Map<String, TableColumnMetadata> sourceTableMetadataMap,
Map<String, TableColumnMetadata> targetTableMetadataMap, boolean isTarget, boolean isSortColumn) {
StringBuilder cols = new StringBuilder();
List<String> colNames = new ArrayList<String>(sourceTableMetadataMap.keySet());
for (String colName : colNames) {
colName = isTarget ? colName.toLowerCase() : colName.toUpperCase();
String colAs = targetTableMetadataMap.get(colName) !=null ? targetTableMetadataMap.get(colName).getColumnAs():"";
String columnType = targetTableMetadataMap.get(colName)!=null ?targetTableMetadataMap.get(colName).getColumnType():"";
int colSize = targetTableMetadataMap.get(colName)!=null ? targetTableMetadataMap.get(colName).getColSize():0;
/** seperating the sorting columns from select column to avoid sql issues for CLOB/BLOB
* 1. Created two set of columns
* 2. Excluing from the columns for sorting
* */
if(isSortColumn && (binaryColumnType(columnType) || varcharLargeSize(columnType, colSize))) {
columns.add(colName);
}else {
sortColumns.add(colName);
columns.add(colName);
cols.append(colAs + ",");
}
}
if (!cols.toString().isEmpty()) {
cols.deleteCharAt(cols.length() - 1);
}
return cols.toString();
}