public static Schema createAvroSchema()

in java/bench/core/src/java/org/apache/orc/bench/core/convert/avro/AvroSchemaUtils.java [36:117]


  public static Schema createAvroSchema(TypeDescription typeInfo) {
    Schema schema;
    switch (typeInfo.getCategory()) {
      case STRING:
        schema = Schema.create(Schema.Type.STRING);
        break;
      case CHAR:
        schema = getSchemaFor("{" +
            "\"type\":\"string\"," +
            "\"logicalType\":\"char\"," +
            "\"maxLength\":" + typeInfo.getMaxLength() + "}");
        break;
      case VARCHAR:
        schema = getSchemaFor("{" +
            "\"type\":\"string\"," +
            "\"logicalType\":\"varchar\"," +
            "\"maxLength\":" + typeInfo.getMaxLength() + "}");
        break;
      case BINARY:
        schema = Schema.create(Schema.Type.BYTES);
        break;
      case BYTE:
        schema = Schema.create(Schema.Type.INT);
        break;
      case SHORT:
        schema = Schema.create(Schema.Type.INT);
        break;
      case INT:
        schema = Schema.create(Schema.Type.INT);
        break;
      case LONG:
        schema = Schema.create(Schema.Type.LONG);
        break;
      case FLOAT:
        schema = Schema.create(Schema.Type.FLOAT);
        break;
      case DOUBLE:
        schema = Schema.create(Schema.Type.DOUBLE);
        break;
      case BOOLEAN:
        schema = Schema.create(Schema.Type.BOOLEAN);
        break;
      case DECIMAL:
        String precision = String.valueOf(typeInfo.getPrecision());
        String scale = String.valueOf(typeInfo.getScale());
        int bytes = PRECISION_TO_BYTE_COUNT[typeInfo.getPrecision() - 1];
        schema = getSchemaFor("{" +
            "\"type\":\"fixed\"," +
            "\"name\":\"" + typeInfo.getFullFieldName() + "\"," +
            "\"size\":" + bytes + "," +
            "\"logicalType\":\"decimal\"," +
            "\"precision\":" + precision + "," +
            "\"scale\":" + scale + "}");
        break;
      case DATE:
        schema = getSchemaFor("{" +
            "\"type\":\"int\"," +
            "\"logicalType\":\"date\"}");
        break;
      case TIMESTAMP:
        schema = getSchemaFor("{" +
            "\"type\":\"long\"," +
            "\"logicalType\":\"timestamp-millis\"}");
        break;
      case LIST:
        schema = createAvroArray(typeInfo);
        break;
      case MAP:
        schema = createAvroMap(typeInfo);
        break;
      case STRUCT:
        schema = createAvroRecord(typeInfo);
        break;
      case UNION:
        schema = createAvroUnion(typeInfo);
        break;
      default:
        throw new UnsupportedOperationException(typeInfo + " is not supported.");
    }

    return schema;
  }