code: public static Row fromString(RowSchema schema, String str, char delimiter)
      {
          Row row = new Row();
  
          ImmutableList.Builder<String> builder = ImmutableList.builder();
          List<String> fields = builder.addAll(Splitter.on(delimiter).split(str)).build();
  
          if (fields.size() != schema.getLength()) {
              throw new PrestoException(INVALID_FUNCTION_ARGUMENT, format("Number of split tokens is not equal to schema length. Expected %s received %s. Schema: %s, fields {%s}, delimiter %s", schema.getLength(), fields.size(), schema, StringUtils.join(fields, ","), delimiter));
          }
  
          for (int i = 0; i < fields.size(); ++i) {
              Type type = schema.getColumn(i).getType();
              row.addField(valueFromString(fields.get(i), type), type);
          }
  
          return row;
      }
docs: Creates a new {@link Row} from the given delimited string based on the given {@link RowSchema}
  
  @param schema Row's schema
  @param str String to parse
  @param delimiter Delimiter of the string
  @return A new Row
  @throws PrestoException If the length of the split string is not equal to the length of the schema
  @throws PrestoException If the schema contains an unsupported type