public static Column parseColumnWithPosition(boolean isFirst,
            Map<String, Integer> sqlType,
            ColumnDefinition columnDefinition) {

        ColDataType colDataType = columnDefinition.getColDataType();

        List<String> definitions = new ArrayList<>();
        if (colDataType.getArgumentsStringList() != null) {
            definitions.addAll(colDataType.getArgumentsStringList());
        }

        List<String> columnSpecs = columnDefinition.getColumnSpecs();

        ColumnBuilder columnBuilder = Column.builder();
        String columnName = reformatName(columnDefinition.getColumnName());
        columnBuilder.name(columnName)
                .definition(definitions).isNullable(parseNullable(columnSpecs))
                .defaultValue(parseDefaultValue(columnSpecs))
                .jdbcType(sqlType.get(columnName))
                .comment(parseComment(columnSpecs));

        if (isFirst) {
            // the column is in the first position of one table
            columnBuilder.position(new Position(PositionType.FIRST, null));
        } else {
            columnBuilder.position(parsePosition(columnSpecs));
        }

        return columnBuilder.build();
    }
parse column definition to a Column object
this method is used for alter operation where a first flag is passed
to determine whether the column is in the first position of one table.
inlong-sort/sort-common/src/main/java/org/apache/inlong/sort/protocol/ddl/Utils/ColumnUtils.java