@Override
    public void read(org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TProtocol iprot, Schema struct) throws org.apache.amoro.shade.thrift.org.apache.thrift.TException {
      org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (schemeField.id) {
          case 1: // COLUMNS
            if (schemeField.type == org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
                struct.columns = new java.util.ArrayList<ColumnInfo>(_list0.size);
                @org.apache.amoro.shade.thrift.org.apache.thrift.annotation.Nullable ColumnInfo _elem1;
                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
                {
                  _elem1 = new ColumnInfo();
                  _elem1.read(iprot);
                  struct.columns.add(_elem1);
                }
                iprot.readListEnd();
              }
              struct.setColumnsIsSet(true);
            } else { 
              org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // PKS
            if (schemeField.type == org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
                struct.pks = new java.util.ArrayList<ColumnInfo>(_list3.size);
                @org.apache.amoro.shade.thrift.org.apache.thrift.annotation.Nullable ColumnInfo _elem4;
                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
                {
                  _elem4 = new ColumnInfo();
                  _elem4.read(iprot);
                  struct.pks.add(_elem4);
                }
                iprot.readListEnd();
              }
              struct.setPksIsSet(true);
            } else { 
              org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // PARTITION_COLUMNS
            if (schemeField.type == org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TList _list6 = iprot.readListBegin();
                struct.partitionColumns = new java.util.ArrayList<ColumnInfo>(_list6.size);
                @org.apache.amoro.shade.thrift.org.apache.thrift.annotation.Nullable ColumnInfo _elem7;
                for (int _i8 = 0; _i8 < _list6.size; ++_i8)
                {
                  _elem7 = new ColumnInfo();
                  _elem7.read(iprot);
                  struct.partitionColumns.add(_elem7);
                }
                iprot.readListEnd();
              }
              struct.setPartitionColumnsIsSet(true);
            } else { 
              org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // SORT_COLUMNS
            if (schemeField.type == org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TList _list9 = iprot.readListBegin();
                struct.sortColumns = new java.util.ArrayList<ColumnInfo>(_list9.size);
                @org.apache.amoro.shade.thrift.org.apache.thrift.annotation.Nullable ColumnInfo _elem10;
                for (int _i11 = 0; _i11 < _list9.size; ++_i11)
                {
                  _elem10 = new ColumnInfo();
                  _elem10.read(iprot);
                  struct.sortColumns.add(_elem10);
                }
                iprot.readListEnd();
              }
              struct.setSortColumnsIsSet(true);
            } else { 
              org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
        }
        iprot.readFieldEnd();
      }
      iprot.readStructEnd();

      // check for required fields of primitive type, which can't be checked in the validate method
      struct.validate();
    }
Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise
amoro-common/src/main/gen-java/org/apache/amoro/api/Schema.java