presto-spi/src/main/java/io/prestosql/spi/type/RowType.java/RowType/makeSignature
class RowType:    private static TypeSignature makeSignature(List<Field> fields)
    {
        int size = fields.size();
        if (size == 0) {
            throw new IllegalArgumentException("Row type must have at least 1 field");
        }

        List<TypeSignatureParameter> parameters = fields.stream()
                .map(field -> TypeSignatureParameter.namedTypeParameter(new NamedTypeSignature(field.getName().map(name -> new RowFieldName(name)), field.getType().getTypeSignature())))
                .collect(Collectors.toList());

        return new TypeSignature(ROW, parameters);
    }