use of com.dtstack.taier.develop.utils.develop.common.dto.ColumnDTO in project Taier by DTStack.
the class HiveSqlBuildService method buildColumnsSql.
private List<String> buildColumnsSql(List<ColumnDTO> columns, boolean isAddCol) {
List<String> columnsStr = Lists.newArrayList();
String colName;
String colType;
String colDesc;
String addColumnFormat = "%s %s comment '%s'";
String alterColumnFormat = "%s %s %s comment '%s'";
for (ColumnDTO col : columns) {
if (StringUtils.isEmpty(col.getColumnName()) || StringUtils.isEmpty(col.getColumnType())) {
throw new DtCenterDefException("column name or type can not be null");
}
colName = col.getColumnName();
colType = col.getColumnType();
colDesc = col.getComment() == null ? "" : col.getComment();
if ("DECIMAL".equals(colType)) {
int precision = col.getPrecision() == null ? 10 : col.getPrecision();
int scale = col.getScale() == null ? 0 : col.getScale();
colType += String.format("(%s,%s)", precision, scale);
}
if (isAddCol) {
columnsStr.add(String.format(addColumnFormat, quote(colName), colType, colDesc));
} else {
columnsStr.add(String.format(alterColumnFormat, quote(colName), colName, colType, colDesc));
}
}
return columnsStr;
}
Aggregations