Search in sources :

Example 1 with ColumnDTO

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;
}
Also used : DtCenterDefException(com.dtstack.taier.common.exception.DtCenterDefException) ColumnDTO(com.dtstack.taier.develop.utils.develop.common.dto.ColumnDTO)

Aggregations

DtCenterDefException (com.dtstack.taier.common.exception.DtCenterDefException)1 ColumnDTO (com.dtstack.taier.develop.utils.develop.common.dto.ColumnDTO)1