TWorkloadGroupInfo.java

/**
 * Autogenerated by Thrift Compiler (0.16.0)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
package org.apache.doris.thrift;

@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.16.0)", date = "2026-05-14")
public class TWorkloadGroupInfo implements org.apache.thrift.TBase<TWorkloadGroupInfo, TWorkloadGroupInfo._Fields>, java.io.Serializable, Cloneable, Comparable<TWorkloadGroupInfo> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TWorkloadGroupInfo");

  private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.I64, (short)1);
  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("version", org.apache.thrift.protocol.TType.I64, (short)3);
  private static final org.apache.thrift.protocol.TField MIN_CPU_PERCENT_FIELD_DESC = new org.apache.thrift.protocol.TField("min_cpu_percent", org.apache.thrift.protocol.TType.I32, (short)4);
  private static final org.apache.thrift.protocol.TField MAX_CPU_PERCENT_FIELD_DESC = new org.apache.thrift.protocol.TField("max_cpu_percent", org.apache.thrift.protocol.TType.I32, (short)5);
  private static final org.apache.thrift.protocol.TField MEM_LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("mem_limit", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField ENABLE_MEMORY_OVERCOMMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("enable_memory_overcommit", org.apache.thrift.protocol.TType.BOOL, (short)7);
  private static final org.apache.thrift.protocol.TField ENABLE_CPU_HARD_LIMIT_FIELD_DESC = new org.apache.thrift.protocol.TField("enable_cpu_hard_limit", org.apache.thrift.protocol.TType.BOOL, (short)8);
  private static final org.apache.thrift.protocol.TField SCAN_THREAD_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("scan_thread_num", org.apache.thrift.protocol.TType.I32, (short)9);
  private static final org.apache.thrift.protocol.TField MAX_REMOTE_SCAN_THREAD_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("max_remote_scan_thread_num", org.apache.thrift.protocol.TType.I32, (short)10);
  private static final org.apache.thrift.protocol.TField MIN_REMOTE_SCAN_THREAD_NUM_FIELD_DESC = new org.apache.thrift.protocol.TField("min_remote_scan_thread_num", org.apache.thrift.protocol.TType.I32, (short)11);
  private static final org.apache.thrift.protocol.TField MEMORY_LOW_WATERMARK_FIELD_DESC = new org.apache.thrift.protocol.TField("memory_low_watermark", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField MEMORY_HIGH_WATERMARK_FIELD_DESC = new org.apache.thrift.protocol.TField("memory_high_watermark", org.apache.thrift.protocol.TType.I32, (short)13);
  private static final org.apache.thrift.protocol.TField READ_BYTES_PER_SECOND_FIELD_DESC = new org.apache.thrift.protocol.TField("read_bytes_per_second", org.apache.thrift.protocol.TType.I64, (short)14);
  private static final org.apache.thrift.protocol.TField REMOTE_READ_BYTES_PER_SECOND_FIELD_DESC = new org.apache.thrift.protocol.TField("remote_read_bytes_per_second", org.apache.thrift.protocol.TType.I64, (short)15);
  private static final org.apache.thrift.protocol.TField TAG_FIELD_DESC = new org.apache.thrift.protocol.TField("tag", org.apache.thrift.protocol.TType.STRING, (short)16);
  private static final org.apache.thrift.protocol.TField TOTAL_QUERY_SLOT_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("total_query_slot_count", org.apache.thrift.protocol.TType.I32, (short)17);
  private static final org.apache.thrift.protocol.TField WRITE_BUFFER_RATIO_FIELD_DESC = new org.apache.thrift.protocol.TField("write_buffer_ratio", org.apache.thrift.protocol.TType.I32, (short)18);
  private static final org.apache.thrift.protocol.TField SLOT_MEMORY_POLICY_FIELD_DESC = new org.apache.thrift.protocol.TField("slot_memory_policy", org.apache.thrift.protocol.TType.I32, (short)19);
  private static final org.apache.thrift.protocol.TField MIN_MEMORY_PERCENT_FIELD_DESC = new org.apache.thrift.protocol.TField("min_memory_percent", org.apache.thrift.protocol.TType.I32, (short)20);
  private static final org.apache.thrift.protocol.TField MAX_MEMORY_PERCENT_FIELD_DESC = new org.apache.thrift.protocol.TField("max_memory_percent", org.apache.thrift.protocol.TType.I32, (short)21);

  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TWorkloadGroupInfoStandardSchemeFactory();
  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TWorkloadGroupInfoTupleSchemeFactory();

  public long id; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String name; // optional
  public long version; // optional
  public int min_cpu_percent; // optional
  public int max_cpu_percent; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String mem_limit; // optional
  public boolean enable_memory_overcommit; // optional
  public boolean enable_cpu_hard_limit; // optional
  public int scan_thread_num; // optional
  public int max_remote_scan_thread_num; // optional
  public int min_remote_scan_thread_num; // optional
  public int memory_low_watermark; // optional
  public int memory_high_watermark; // optional
  public long read_bytes_per_second; // optional
  public long remote_read_bytes_per_second; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String tag; // optional
  public int total_query_slot_count; // optional
  public int write_buffer_ratio; // optional
  /**
   * 
   * @see TWgSlotMemoryPolicy
   */
  public @org.apache.thrift.annotation.Nullable TWgSlotMemoryPolicy slot_memory_policy; // optional
  public int min_memory_percent; // optional
  public int max_memory_percent; // optional

  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
    ID((short)1, "id"),
    NAME((short)2, "name"),
    VERSION((short)3, "version"),
    MIN_CPU_PERCENT((short)4, "min_cpu_percent"),
    MAX_CPU_PERCENT((short)5, "max_cpu_percent"),
    MEM_LIMIT((short)6, "mem_limit"),
    ENABLE_MEMORY_OVERCOMMIT((short)7, "enable_memory_overcommit"),
    ENABLE_CPU_HARD_LIMIT((short)8, "enable_cpu_hard_limit"),
    SCAN_THREAD_NUM((short)9, "scan_thread_num"),
    MAX_REMOTE_SCAN_THREAD_NUM((short)10, "max_remote_scan_thread_num"),
    MIN_REMOTE_SCAN_THREAD_NUM((short)11, "min_remote_scan_thread_num"),
    MEMORY_LOW_WATERMARK((short)12, "memory_low_watermark"),
    MEMORY_HIGH_WATERMARK((short)13, "memory_high_watermark"),
    READ_BYTES_PER_SECOND((short)14, "read_bytes_per_second"),
    REMOTE_READ_BYTES_PER_SECOND((short)15, "remote_read_bytes_per_second"),
    TAG((short)16, "tag"),
    TOTAL_QUERY_SLOT_COUNT((short)17, "total_query_slot_count"),
    WRITE_BUFFER_RATIO((short)18, "write_buffer_ratio"),
    /**
     * 
     * @see TWgSlotMemoryPolicy
     */
    SLOT_MEMORY_POLICY((short)19, "slot_memory_policy"),
    MIN_MEMORY_PERCENT((short)20, "min_memory_percent"),
    MAX_MEMORY_PERCENT((short)21, "max_memory_percent");

    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();

    static {
      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
        byName.put(field.getFieldName(), field);
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByThriftId(int fieldId) {
      switch(fieldId) {
        case 1: // ID
          return ID;
        case 2: // NAME
          return NAME;
        case 3: // VERSION
          return VERSION;
        case 4: // MIN_CPU_PERCENT
          return MIN_CPU_PERCENT;
        case 5: // MAX_CPU_PERCENT
          return MAX_CPU_PERCENT;
        case 6: // MEM_LIMIT
          return MEM_LIMIT;
        case 7: // ENABLE_MEMORY_OVERCOMMIT
          return ENABLE_MEMORY_OVERCOMMIT;
        case 8: // ENABLE_CPU_HARD_LIMIT
          return ENABLE_CPU_HARD_LIMIT;
        case 9: // SCAN_THREAD_NUM
          return SCAN_THREAD_NUM;
        case 10: // MAX_REMOTE_SCAN_THREAD_NUM
          return MAX_REMOTE_SCAN_THREAD_NUM;
        case 11: // MIN_REMOTE_SCAN_THREAD_NUM
          return MIN_REMOTE_SCAN_THREAD_NUM;
        case 12: // MEMORY_LOW_WATERMARK
          return MEMORY_LOW_WATERMARK;
        case 13: // MEMORY_HIGH_WATERMARK
          return MEMORY_HIGH_WATERMARK;
        case 14: // READ_BYTES_PER_SECOND
          return READ_BYTES_PER_SECOND;
        case 15: // REMOTE_READ_BYTES_PER_SECOND
          return REMOTE_READ_BYTES_PER_SECOND;
        case 16: // TAG
          return TAG;
        case 17: // TOTAL_QUERY_SLOT_COUNT
          return TOTAL_QUERY_SLOT_COUNT;
        case 18: // WRITE_BUFFER_RATIO
          return WRITE_BUFFER_RATIO;
        case 19: // SLOT_MEMORY_POLICY
          return SLOT_MEMORY_POLICY;
        case 20: // MIN_MEMORY_PERCENT
          return MIN_MEMORY_PERCENT;
        case 21: // MAX_MEMORY_PERCENT
          return MAX_MEMORY_PERCENT;
        default:
          return null;
      }
    }

    /**
     * Find the _Fields constant that matches fieldId, throwing an exception
     * if it is not found.
     */
    public static _Fields findByThriftIdOrThrow(int fieldId) {
      _Fields fields = findByThriftId(fieldId);
      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
      return fields;
    }

    /**
     * Find the _Fields constant that matches name, or null if its not found.
     */
    @org.apache.thrift.annotation.Nullable
    public static _Fields findByName(java.lang.String name) {
      return byName.get(name);
    }

    private final short _thriftId;
    private final java.lang.String _fieldName;

    _Fields(short thriftId, java.lang.String fieldName) {
      _thriftId = thriftId;
      _fieldName = fieldName;
    }

    public short getThriftFieldId() {
      return _thriftId;
    }

    public java.lang.String getFieldName() {
      return _fieldName;
    }
  }

  // isset id assignments
  private static final int __ID_ISSET_ID = 0;
  private static final int __VERSION_ISSET_ID = 1;
  private static final int __MIN_CPU_PERCENT_ISSET_ID = 2;
  private static final int __MAX_CPU_PERCENT_ISSET_ID = 3;
  private static final int __ENABLE_MEMORY_OVERCOMMIT_ISSET_ID = 4;
  private static final int __ENABLE_CPU_HARD_LIMIT_ISSET_ID = 5;
  private static final int __SCAN_THREAD_NUM_ISSET_ID = 6;
  private static final int __MAX_REMOTE_SCAN_THREAD_NUM_ISSET_ID = 7;
  private static final int __MIN_REMOTE_SCAN_THREAD_NUM_ISSET_ID = 8;
  private static final int __MEMORY_LOW_WATERMARK_ISSET_ID = 9;
  private static final int __MEMORY_HIGH_WATERMARK_ISSET_ID = 10;
  private static final int __READ_BYTES_PER_SECOND_ISSET_ID = 11;
  private static final int __REMOTE_READ_BYTES_PER_SECOND_ISSET_ID = 12;
  private static final int __TOTAL_QUERY_SLOT_COUNT_ISSET_ID = 13;
  private static final int __WRITE_BUFFER_RATIO_ISSET_ID = 14;
  private static final int __MIN_MEMORY_PERCENT_ISSET_ID = 15;
  private static final int __MAX_MEMORY_PERCENT_ISSET_ID = 16;
  private int __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.ID,_Fields.NAME,_Fields.VERSION,_Fields.MIN_CPU_PERCENT,_Fields.MAX_CPU_PERCENT,_Fields.MEM_LIMIT,_Fields.ENABLE_MEMORY_OVERCOMMIT,_Fields.ENABLE_CPU_HARD_LIMIT,_Fields.SCAN_THREAD_NUM,_Fields.MAX_REMOTE_SCAN_THREAD_NUM,_Fields.MIN_REMOTE_SCAN_THREAD_NUM,_Fields.MEMORY_LOW_WATERMARK,_Fields.MEMORY_HIGH_WATERMARK,_Fields.READ_BYTES_PER_SECOND,_Fields.REMOTE_READ_BYTES_PER_SECOND,_Fields.TAG,_Fields.TOTAL_QUERY_SLOT_COUNT,_Fields.WRITE_BUFFER_RATIO,_Fields.SLOT_MEMORY_POLICY,_Fields.MIN_MEMORY_PERCENT,_Fields.MAX_MEMORY_PERCENT};
  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
  static {
    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.VERSION, new org.apache.thrift.meta_data.FieldMetaData("version", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.MIN_CPU_PERCENT, new org.apache.thrift.meta_data.FieldMetaData("min_cpu_percent", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MAX_CPU_PERCENT, new org.apache.thrift.meta_data.FieldMetaData("max_cpu_percent", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MEM_LIMIT, new org.apache.thrift.meta_data.FieldMetaData("mem_limit", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ENABLE_MEMORY_OVERCOMMIT, new org.apache.thrift.meta_data.FieldMetaData("enable_memory_overcommit", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.ENABLE_CPU_HARD_LIMIT, new org.apache.thrift.meta_data.FieldMetaData("enable_cpu_hard_limit", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.SCAN_THREAD_NUM, new org.apache.thrift.meta_data.FieldMetaData("scan_thread_num", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MAX_REMOTE_SCAN_THREAD_NUM, new org.apache.thrift.meta_data.FieldMetaData("max_remote_scan_thread_num", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MIN_REMOTE_SCAN_THREAD_NUM, new org.apache.thrift.meta_data.FieldMetaData("min_remote_scan_thread_num", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MEMORY_LOW_WATERMARK, new org.apache.thrift.meta_data.FieldMetaData("memory_low_watermark", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MEMORY_HIGH_WATERMARK, new org.apache.thrift.meta_data.FieldMetaData("memory_high_watermark", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.READ_BYTES_PER_SECOND, new org.apache.thrift.meta_data.FieldMetaData("read_bytes_per_second", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.REMOTE_READ_BYTES_PER_SECOND, new org.apache.thrift.meta_data.FieldMetaData("remote_read_bytes_per_second", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.TAG, new org.apache.thrift.meta_data.FieldMetaData("tag", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TOTAL_QUERY_SLOT_COUNT, new org.apache.thrift.meta_data.FieldMetaData("total_query_slot_count", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.WRITE_BUFFER_RATIO, new org.apache.thrift.meta_data.FieldMetaData("write_buffer_ratio", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.SLOT_MEMORY_POLICY, new org.apache.thrift.meta_data.FieldMetaData("slot_memory_policy", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TWgSlotMemoryPolicy.class)));
    tmpMap.put(_Fields.MIN_MEMORY_PERCENT, new org.apache.thrift.meta_data.FieldMetaData("min_memory_percent", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.MAX_MEMORY_PERCENT, new org.apache.thrift.meta_data.FieldMetaData("max_memory_percent", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TWorkloadGroupInfo.class, metaDataMap);
  }

  public TWorkloadGroupInfo() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TWorkloadGroupInfo(TWorkloadGroupInfo other) {
    __isset_bitfield = other.__isset_bitfield;
    this.id = other.id;
    if (other.isSetName()) {
      this.name = other.name;
    }
    this.version = other.version;
    this.min_cpu_percent = other.min_cpu_percent;
    this.max_cpu_percent = other.max_cpu_percent;
    if (other.isSetMemLimit()) {
      this.mem_limit = other.mem_limit;
    }
    this.enable_memory_overcommit = other.enable_memory_overcommit;
    this.enable_cpu_hard_limit = other.enable_cpu_hard_limit;
    this.scan_thread_num = other.scan_thread_num;
    this.max_remote_scan_thread_num = other.max_remote_scan_thread_num;
    this.min_remote_scan_thread_num = other.min_remote_scan_thread_num;
    this.memory_low_watermark = other.memory_low_watermark;
    this.memory_high_watermark = other.memory_high_watermark;
    this.read_bytes_per_second = other.read_bytes_per_second;
    this.remote_read_bytes_per_second = other.remote_read_bytes_per_second;
    if (other.isSetTag()) {
      this.tag = other.tag;
    }
    this.total_query_slot_count = other.total_query_slot_count;
    this.write_buffer_ratio = other.write_buffer_ratio;
    if (other.isSetSlotMemoryPolicy()) {
      this.slot_memory_policy = other.slot_memory_policy;
    }
    this.min_memory_percent = other.min_memory_percent;
    this.max_memory_percent = other.max_memory_percent;
  }

  public TWorkloadGroupInfo deepCopy() {
    return new TWorkloadGroupInfo(this);
  }

  @Override
  public void clear() {
    setIdIsSet(false);
    this.id = 0;
    this.name = null;
    setVersionIsSet(false);
    this.version = 0;
    setMinCpuPercentIsSet(false);
    this.min_cpu_percent = 0;
    setMaxCpuPercentIsSet(false);
    this.max_cpu_percent = 0;
    this.mem_limit = null;
    setEnableMemoryOvercommitIsSet(false);
    this.enable_memory_overcommit = false;
    setEnableCpuHardLimitIsSet(false);
    this.enable_cpu_hard_limit = false;
    setScanThreadNumIsSet(false);
    this.scan_thread_num = 0;
    setMaxRemoteScanThreadNumIsSet(false);
    this.max_remote_scan_thread_num = 0;
    setMinRemoteScanThreadNumIsSet(false);
    this.min_remote_scan_thread_num = 0;
    setMemoryLowWatermarkIsSet(false);
    this.memory_low_watermark = 0;
    setMemoryHighWatermarkIsSet(false);
    this.memory_high_watermark = 0;
    setReadBytesPerSecondIsSet(false);
    this.read_bytes_per_second = 0;
    setRemoteReadBytesPerSecondIsSet(false);
    this.remote_read_bytes_per_second = 0;
    this.tag = null;
    setTotalQuerySlotCountIsSet(false);
    this.total_query_slot_count = 0;
    setWriteBufferRatioIsSet(false);
    this.write_buffer_ratio = 0;
    this.slot_memory_policy = null;
    setMinMemoryPercentIsSet(false);
    this.min_memory_percent = 0;
    setMaxMemoryPercentIsSet(false);
    this.max_memory_percent = 0;
  }

  public long getId() {
    return this.id;
  }

  public TWorkloadGroupInfo setId(long id) {
    this.id = id;
    setIdIsSet(true);
    return this;
  }

  public void unsetId() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ID_ISSET_ID);
  }

  /** Returns true if field id is set (has been assigned a value) and false otherwise */
  public boolean isSetId() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ID_ISSET_ID);
  }

  public void setIdIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ID_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getName() {
    return this.name;
  }

  public TWorkloadGroupInfo setName(@org.apache.thrift.annotation.Nullable java.lang.String name) {
    this.name = name;
    return this;
  }

  public void unsetName() {
    this.name = null;
  }

  /** Returns true if field name is set (has been assigned a value) and false otherwise */
  public boolean isSetName() {
    return this.name != null;
  }

  public void setNameIsSet(boolean value) {
    if (!value) {
      this.name = null;
    }
  }

  public long getVersion() {
    return this.version;
  }

  public TWorkloadGroupInfo setVersion(long version) {
    this.version = version;
    setVersionIsSet(true);
    return this;
  }

  public void unsetVersion() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __VERSION_ISSET_ID);
  }

  /** Returns true if field version is set (has been assigned a value) and false otherwise */
  public boolean isSetVersion() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __VERSION_ISSET_ID);
  }

  public void setVersionIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __VERSION_ISSET_ID, value);
  }

  public int getMinCpuPercent() {
    return this.min_cpu_percent;
  }

  public TWorkloadGroupInfo setMinCpuPercent(int min_cpu_percent) {
    this.min_cpu_percent = min_cpu_percent;
    setMinCpuPercentIsSet(true);
    return this;
  }

  public void unsetMinCpuPercent() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MIN_CPU_PERCENT_ISSET_ID);
  }

  /** Returns true if field min_cpu_percent is set (has been assigned a value) and false otherwise */
  public boolean isSetMinCpuPercent() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MIN_CPU_PERCENT_ISSET_ID);
  }

  public void setMinCpuPercentIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MIN_CPU_PERCENT_ISSET_ID, value);
  }

  public int getMaxCpuPercent() {
    return this.max_cpu_percent;
  }

  public TWorkloadGroupInfo setMaxCpuPercent(int max_cpu_percent) {
    this.max_cpu_percent = max_cpu_percent;
    setMaxCpuPercentIsSet(true);
    return this;
  }

  public void unsetMaxCpuPercent() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_CPU_PERCENT_ISSET_ID);
  }

  /** Returns true if field max_cpu_percent is set (has been assigned a value) and false otherwise */
  public boolean isSetMaxCpuPercent() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_CPU_PERCENT_ISSET_ID);
  }

  public void setMaxCpuPercentIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_CPU_PERCENT_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getMemLimit() {
    return this.mem_limit;
  }

  public TWorkloadGroupInfo setMemLimit(@org.apache.thrift.annotation.Nullable java.lang.String mem_limit) {
    this.mem_limit = mem_limit;
    return this;
  }

  public void unsetMemLimit() {
    this.mem_limit = null;
  }

  /** Returns true if field mem_limit is set (has been assigned a value) and false otherwise */
  public boolean isSetMemLimit() {
    return this.mem_limit != null;
  }

  public void setMemLimitIsSet(boolean value) {
    if (!value) {
      this.mem_limit = null;
    }
  }

  public boolean isEnableMemoryOvercommit() {
    return this.enable_memory_overcommit;
  }

  public TWorkloadGroupInfo setEnableMemoryOvercommit(boolean enable_memory_overcommit) {
    this.enable_memory_overcommit = enable_memory_overcommit;
    setEnableMemoryOvercommitIsSet(true);
    return this;
  }

  public void unsetEnableMemoryOvercommit() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ENABLE_MEMORY_OVERCOMMIT_ISSET_ID);
  }

  /** Returns true if field enable_memory_overcommit is set (has been assigned a value) and false otherwise */
  public boolean isSetEnableMemoryOvercommit() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ENABLE_MEMORY_OVERCOMMIT_ISSET_ID);
  }

  public void setEnableMemoryOvercommitIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ENABLE_MEMORY_OVERCOMMIT_ISSET_ID, value);
  }

  public boolean isEnableCpuHardLimit() {
    return this.enable_cpu_hard_limit;
  }

  public TWorkloadGroupInfo setEnableCpuHardLimit(boolean enable_cpu_hard_limit) {
    this.enable_cpu_hard_limit = enable_cpu_hard_limit;
    setEnableCpuHardLimitIsSet(true);
    return this;
  }

  public void unsetEnableCpuHardLimit() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ENABLE_CPU_HARD_LIMIT_ISSET_ID);
  }

  /** Returns true if field enable_cpu_hard_limit is set (has been assigned a value) and false otherwise */
  public boolean isSetEnableCpuHardLimit() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ENABLE_CPU_HARD_LIMIT_ISSET_ID);
  }

  public void setEnableCpuHardLimitIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ENABLE_CPU_HARD_LIMIT_ISSET_ID, value);
  }

  public int getScanThreadNum() {
    return this.scan_thread_num;
  }

  public TWorkloadGroupInfo setScanThreadNum(int scan_thread_num) {
    this.scan_thread_num = scan_thread_num;
    setScanThreadNumIsSet(true);
    return this;
  }

  public void unsetScanThreadNum() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SCAN_THREAD_NUM_ISSET_ID);
  }

  /** Returns true if field scan_thread_num is set (has been assigned a value) and false otherwise */
  public boolean isSetScanThreadNum() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SCAN_THREAD_NUM_ISSET_ID);
  }

  public void setScanThreadNumIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SCAN_THREAD_NUM_ISSET_ID, value);
  }

  public int getMaxRemoteScanThreadNum() {
    return this.max_remote_scan_thread_num;
  }

  public TWorkloadGroupInfo setMaxRemoteScanThreadNum(int max_remote_scan_thread_num) {
    this.max_remote_scan_thread_num = max_remote_scan_thread_num;
    setMaxRemoteScanThreadNumIsSet(true);
    return this;
  }

  public void unsetMaxRemoteScanThreadNum() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_REMOTE_SCAN_THREAD_NUM_ISSET_ID);
  }

  /** Returns true if field max_remote_scan_thread_num is set (has been assigned a value) and false otherwise */
  public boolean isSetMaxRemoteScanThreadNum() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_REMOTE_SCAN_THREAD_NUM_ISSET_ID);
  }

  public void setMaxRemoteScanThreadNumIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_REMOTE_SCAN_THREAD_NUM_ISSET_ID, value);
  }

  public int getMinRemoteScanThreadNum() {
    return this.min_remote_scan_thread_num;
  }

  public TWorkloadGroupInfo setMinRemoteScanThreadNum(int min_remote_scan_thread_num) {
    this.min_remote_scan_thread_num = min_remote_scan_thread_num;
    setMinRemoteScanThreadNumIsSet(true);
    return this;
  }

  public void unsetMinRemoteScanThreadNum() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MIN_REMOTE_SCAN_THREAD_NUM_ISSET_ID);
  }

  /** Returns true if field min_remote_scan_thread_num is set (has been assigned a value) and false otherwise */
  public boolean isSetMinRemoteScanThreadNum() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MIN_REMOTE_SCAN_THREAD_NUM_ISSET_ID);
  }

  public void setMinRemoteScanThreadNumIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MIN_REMOTE_SCAN_THREAD_NUM_ISSET_ID, value);
  }

  public int getMemoryLowWatermark() {
    return this.memory_low_watermark;
  }

  public TWorkloadGroupInfo setMemoryLowWatermark(int memory_low_watermark) {
    this.memory_low_watermark = memory_low_watermark;
    setMemoryLowWatermarkIsSet(true);
    return this;
  }

  public void unsetMemoryLowWatermark() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MEMORY_LOW_WATERMARK_ISSET_ID);
  }

  /** Returns true if field memory_low_watermark is set (has been assigned a value) and false otherwise */
  public boolean isSetMemoryLowWatermark() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MEMORY_LOW_WATERMARK_ISSET_ID);
  }

  public void setMemoryLowWatermarkIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MEMORY_LOW_WATERMARK_ISSET_ID, value);
  }

  public int getMemoryHighWatermark() {
    return this.memory_high_watermark;
  }

  public TWorkloadGroupInfo setMemoryHighWatermark(int memory_high_watermark) {
    this.memory_high_watermark = memory_high_watermark;
    setMemoryHighWatermarkIsSet(true);
    return this;
  }

  public void unsetMemoryHighWatermark() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MEMORY_HIGH_WATERMARK_ISSET_ID);
  }

  /** Returns true if field memory_high_watermark is set (has been assigned a value) and false otherwise */
  public boolean isSetMemoryHighWatermark() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MEMORY_HIGH_WATERMARK_ISSET_ID);
  }

  public void setMemoryHighWatermarkIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MEMORY_HIGH_WATERMARK_ISSET_ID, value);
  }

  public long getReadBytesPerSecond() {
    return this.read_bytes_per_second;
  }

  public TWorkloadGroupInfo setReadBytesPerSecond(long read_bytes_per_second) {
    this.read_bytes_per_second = read_bytes_per_second;
    setReadBytesPerSecondIsSet(true);
    return this;
  }

  public void unsetReadBytesPerSecond() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __READ_BYTES_PER_SECOND_ISSET_ID);
  }

  /** Returns true if field read_bytes_per_second is set (has been assigned a value) and false otherwise */
  public boolean isSetReadBytesPerSecond() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __READ_BYTES_PER_SECOND_ISSET_ID);
  }

  public void setReadBytesPerSecondIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __READ_BYTES_PER_SECOND_ISSET_ID, value);
  }

  public long getRemoteReadBytesPerSecond() {
    return this.remote_read_bytes_per_second;
  }

  public TWorkloadGroupInfo setRemoteReadBytesPerSecond(long remote_read_bytes_per_second) {
    this.remote_read_bytes_per_second = remote_read_bytes_per_second;
    setRemoteReadBytesPerSecondIsSet(true);
    return this;
  }

  public void unsetRemoteReadBytesPerSecond() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __REMOTE_READ_BYTES_PER_SECOND_ISSET_ID);
  }

  /** Returns true if field remote_read_bytes_per_second is set (has been assigned a value) and false otherwise */
  public boolean isSetRemoteReadBytesPerSecond() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __REMOTE_READ_BYTES_PER_SECOND_ISSET_ID);
  }

  public void setRemoteReadBytesPerSecondIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __REMOTE_READ_BYTES_PER_SECOND_ISSET_ID, value);
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.String getTag() {
    return this.tag;
  }

  public TWorkloadGroupInfo setTag(@org.apache.thrift.annotation.Nullable java.lang.String tag) {
    this.tag = tag;
    return this;
  }

  public void unsetTag() {
    this.tag = null;
  }

  /** Returns true if field tag is set (has been assigned a value) and false otherwise */
  public boolean isSetTag() {
    return this.tag != null;
  }

  public void setTagIsSet(boolean value) {
    if (!value) {
      this.tag = null;
    }
  }

  public int getTotalQuerySlotCount() {
    return this.total_query_slot_count;
  }

  public TWorkloadGroupInfo setTotalQuerySlotCount(int total_query_slot_count) {
    this.total_query_slot_count = total_query_slot_count;
    setTotalQuerySlotCountIsSet(true);
    return this;
  }

  public void unsetTotalQuerySlotCount() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __TOTAL_QUERY_SLOT_COUNT_ISSET_ID);
  }

  /** Returns true if field total_query_slot_count is set (has been assigned a value) and false otherwise */
  public boolean isSetTotalQuerySlotCount() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __TOTAL_QUERY_SLOT_COUNT_ISSET_ID);
  }

  public void setTotalQuerySlotCountIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __TOTAL_QUERY_SLOT_COUNT_ISSET_ID, value);
  }

  public int getWriteBufferRatio() {
    return this.write_buffer_ratio;
  }

  public TWorkloadGroupInfo setWriteBufferRatio(int write_buffer_ratio) {
    this.write_buffer_ratio = write_buffer_ratio;
    setWriteBufferRatioIsSet(true);
    return this;
  }

  public void unsetWriteBufferRatio() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __WRITE_BUFFER_RATIO_ISSET_ID);
  }

  /** Returns true if field write_buffer_ratio is set (has been assigned a value) and false otherwise */
  public boolean isSetWriteBufferRatio() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __WRITE_BUFFER_RATIO_ISSET_ID);
  }

  public void setWriteBufferRatioIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __WRITE_BUFFER_RATIO_ISSET_ID, value);
  }

  /**
   * 
   * @see TWgSlotMemoryPolicy
   */
  @org.apache.thrift.annotation.Nullable
  public TWgSlotMemoryPolicy getSlotMemoryPolicy() {
    return this.slot_memory_policy;
  }

  /**
   * 
   * @see TWgSlotMemoryPolicy
   */
  public TWorkloadGroupInfo setSlotMemoryPolicy(@org.apache.thrift.annotation.Nullable TWgSlotMemoryPolicy slot_memory_policy) {
    this.slot_memory_policy = slot_memory_policy;
    return this;
  }

  public void unsetSlotMemoryPolicy() {
    this.slot_memory_policy = null;
  }

  /** Returns true if field slot_memory_policy is set (has been assigned a value) and false otherwise */
  public boolean isSetSlotMemoryPolicy() {
    return this.slot_memory_policy != null;
  }

  public void setSlotMemoryPolicyIsSet(boolean value) {
    if (!value) {
      this.slot_memory_policy = null;
    }
  }

  public int getMinMemoryPercent() {
    return this.min_memory_percent;
  }

  public TWorkloadGroupInfo setMinMemoryPercent(int min_memory_percent) {
    this.min_memory_percent = min_memory_percent;
    setMinMemoryPercentIsSet(true);
    return this;
  }

  public void unsetMinMemoryPercent() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MIN_MEMORY_PERCENT_ISSET_ID);
  }

  /** Returns true if field min_memory_percent is set (has been assigned a value) and false otherwise */
  public boolean isSetMinMemoryPercent() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MIN_MEMORY_PERCENT_ISSET_ID);
  }

  public void setMinMemoryPercentIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MIN_MEMORY_PERCENT_ISSET_ID, value);
  }

  public int getMaxMemoryPercent() {
    return this.max_memory_percent;
  }

  public TWorkloadGroupInfo setMaxMemoryPercent(int max_memory_percent) {
    this.max_memory_percent = max_memory_percent;
    setMaxMemoryPercentIsSet(true);
    return this;
  }

  public void unsetMaxMemoryPercent() {
    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __MAX_MEMORY_PERCENT_ISSET_ID);
  }

  /** Returns true if field max_memory_percent is set (has been assigned a value) and false otherwise */
  public boolean isSetMaxMemoryPercent() {
    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __MAX_MEMORY_PERCENT_ISSET_ID);
  }

  public void setMaxMemoryPercentIsSet(boolean value) {
    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __MAX_MEMORY_PERCENT_ISSET_ID, value);
  }

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case ID:
      if (value == null) {
        unsetId();
      } else {
        setId((java.lang.Long)value);
      }
      break;

    case NAME:
      if (value == null) {
        unsetName();
      } else {
        setName((java.lang.String)value);
      }
      break;

    case VERSION:
      if (value == null) {
        unsetVersion();
      } else {
        setVersion((java.lang.Long)value);
      }
      break;

    case MIN_CPU_PERCENT:
      if (value == null) {
        unsetMinCpuPercent();
      } else {
        setMinCpuPercent((java.lang.Integer)value);
      }
      break;

    case MAX_CPU_PERCENT:
      if (value == null) {
        unsetMaxCpuPercent();
      } else {
        setMaxCpuPercent((java.lang.Integer)value);
      }
      break;

    case MEM_LIMIT:
      if (value == null) {
        unsetMemLimit();
      } else {
        setMemLimit((java.lang.String)value);
      }
      break;

    case ENABLE_MEMORY_OVERCOMMIT:
      if (value == null) {
        unsetEnableMemoryOvercommit();
      } else {
        setEnableMemoryOvercommit((java.lang.Boolean)value);
      }
      break;

    case ENABLE_CPU_HARD_LIMIT:
      if (value == null) {
        unsetEnableCpuHardLimit();
      } else {
        setEnableCpuHardLimit((java.lang.Boolean)value);
      }
      break;

    case SCAN_THREAD_NUM:
      if (value == null) {
        unsetScanThreadNum();
      } else {
        setScanThreadNum((java.lang.Integer)value);
      }
      break;

    case MAX_REMOTE_SCAN_THREAD_NUM:
      if (value == null) {
        unsetMaxRemoteScanThreadNum();
      } else {
        setMaxRemoteScanThreadNum((java.lang.Integer)value);
      }
      break;

    case MIN_REMOTE_SCAN_THREAD_NUM:
      if (value == null) {
        unsetMinRemoteScanThreadNum();
      } else {
        setMinRemoteScanThreadNum((java.lang.Integer)value);
      }
      break;

    case MEMORY_LOW_WATERMARK:
      if (value == null) {
        unsetMemoryLowWatermark();
      } else {
        setMemoryLowWatermark((java.lang.Integer)value);
      }
      break;

    case MEMORY_HIGH_WATERMARK:
      if (value == null) {
        unsetMemoryHighWatermark();
      } else {
        setMemoryHighWatermark((java.lang.Integer)value);
      }
      break;

    case READ_BYTES_PER_SECOND:
      if (value == null) {
        unsetReadBytesPerSecond();
      } else {
        setReadBytesPerSecond((java.lang.Long)value);
      }
      break;

    case REMOTE_READ_BYTES_PER_SECOND:
      if (value == null) {
        unsetRemoteReadBytesPerSecond();
      } else {
        setRemoteReadBytesPerSecond((java.lang.Long)value);
      }
      break;

    case TAG:
      if (value == null) {
        unsetTag();
      } else {
        setTag((java.lang.String)value);
      }
      break;

    case TOTAL_QUERY_SLOT_COUNT:
      if (value == null) {
        unsetTotalQuerySlotCount();
      } else {
        setTotalQuerySlotCount((java.lang.Integer)value);
      }
      break;

    case WRITE_BUFFER_RATIO:
      if (value == null) {
        unsetWriteBufferRatio();
      } else {
        setWriteBufferRatio((java.lang.Integer)value);
      }
      break;

    case SLOT_MEMORY_POLICY:
      if (value == null) {
        unsetSlotMemoryPolicy();
      } else {
        setSlotMemoryPolicy((TWgSlotMemoryPolicy)value);
      }
      break;

    case MIN_MEMORY_PERCENT:
      if (value == null) {
        unsetMinMemoryPercent();
      } else {
        setMinMemoryPercent((java.lang.Integer)value);
      }
      break;

    case MAX_MEMORY_PERCENT:
      if (value == null) {
        unsetMaxMemoryPercent();
      } else {
        setMaxMemoryPercent((java.lang.Integer)value);
      }
      break;

    }
  }

  @org.apache.thrift.annotation.Nullable
  public java.lang.Object getFieldValue(_Fields field) {
    switch (field) {
    case ID:
      return getId();

    case NAME:
      return getName();

    case VERSION:
      return getVersion();

    case MIN_CPU_PERCENT:
      return getMinCpuPercent();

    case MAX_CPU_PERCENT:
      return getMaxCpuPercent();

    case MEM_LIMIT:
      return getMemLimit();

    case ENABLE_MEMORY_OVERCOMMIT:
      return isEnableMemoryOvercommit();

    case ENABLE_CPU_HARD_LIMIT:
      return isEnableCpuHardLimit();

    case SCAN_THREAD_NUM:
      return getScanThreadNum();

    case MAX_REMOTE_SCAN_THREAD_NUM:
      return getMaxRemoteScanThreadNum();

    case MIN_REMOTE_SCAN_THREAD_NUM:
      return getMinRemoteScanThreadNum();

    case MEMORY_LOW_WATERMARK:
      return getMemoryLowWatermark();

    case MEMORY_HIGH_WATERMARK:
      return getMemoryHighWatermark();

    case READ_BYTES_PER_SECOND:
      return getReadBytesPerSecond();

    case REMOTE_READ_BYTES_PER_SECOND:
      return getRemoteReadBytesPerSecond();

    case TAG:
      return getTag();

    case TOTAL_QUERY_SLOT_COUNT:
      return getTotalQuerySlotCount();

    case WRITE_BUFFER_RATIO:
      return getWriteBufferRatio();

    case SLOT_MEMORY_POLICY:
      return getSlotMemoryPolicy();

    case MIN_MEMORY_PERCENT:
      return getMinMemoryPercent();

    case MAX_MEMORY_PERCENT:
      return getMaxMemoryPercent();

    }
    throw new java.lang.IllegalStateException();
  }

  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
  public boolean isSet(_Fields field) {
    if (field == null) {
      throw new java.lang.IllegalArgumentException();
    }

    switch (field) {
    case ID:
      return isSetId();
    case NAME:
      return isSetName();
    case VERSION:
      return isSetVersion();
    case MIN_CPU_PERCENT:
      return isSetMinCpuPercent();
    case MAX_CPU_PERCENT:
      return isSetMaxCpuPercent();
    case MEM_LIMIT:
      return isSetMemLimit();
    case ENABLE_MEMORY_OVERCOMMIT:
      return isSetEnableMemoryOvercommit();
    case ENABLE_CPU_HARD_LIMIT:
      return isSetEnableCpuHardLimit();
    case SCAN_THREAD_NUM:
      return isSetScanThreadNum();
    case MAX_REMOTE_SCAN_THREAD_NUM:
      return isSetMaxRemoteScanThreadNum();
    case MIN_REMOTE_SCAN_THREAD_NUM:
      return isSetMinRemoteScanThreadNum();
    case MEMORY_LOW_WATERMARK:
      return isSetMemoryLowWatermark();
    case MEMORY_HIGH_WATERMARK:
      return isSetMemoryHighWatermark();
    case READ_BYTES_PER_SECOND:
      return isSetReadBytesPerSecond();
    case REMOTE_READ_BYTES_PER_SECOND:
      return isSetRemoteReadBytesPerSecond();
    case TAG:
      return isSetTag();
    case TOTAL_QUERY_SLOT_COUNT:
      return isSetTotalQuerySlotCount();
    case WRITE_BUFFER_RATIO:
      return isSetWriteBufferRatio();
    case SLOT_MEMORY_POLICY:
      return isSetSlotMemoryPolicy();
    case MIN_MEMORY_PERCENT:
      return isSetMinMemoryPercent();
    case MAX_MEMORY_PERCENT:
      return isSetMaxMemoryPercent();
    }
    throw new java.lang.IllegalStateException();
  }

  @Override
  public boolean equals(java.lang.Object that) {
    if (that instanceof TWorkloadGroupInfo)
      return this.equals((TWorkloadGroupInfo)that);
    return false;
  }

  public boolean equals(TWorkloadGroupInfo that) {
    if (that == null)
      return false;
    if (this == that)
      return true;

    boolean this_present_id = true && this.isSetId();
    boolean that_present_id = true && that.isSetId();
    if (this_present_id || that_present_id) {
      if (!(this_present_id && that_present_id))
        return false;
      if (this.id != that.id)
        return false;
    }

    boolean this_present_name = true && this.isSetName();
    boolean that_present_name = true && that.isSetName();
    if (this_present_name || that_present_name) {
      if (!(this_present_name && that_present_name))
        return false;
      if (!this.name.equals(that.name))
        return false;
    }

    boolean this_present_version = true && this.isSetVersion();
    boolean that_present_version = true && that.isSetVersion();
    if (this_present_version || that_present_version) {
      if (!(this_present_version && that_present_version))
        return false;
      if (this.version != that.version)
        return false;
    }

    boolean this_present_min_cpu_percent = true && this.isSetMinCpuPercent();
    boolean that_present_min_cpu_percent = true && that.isSetMinCpuPercent();
    if (this_present_min_cpu_percent || that_present_min_cpu_percent) {
      if (!(this_present_min_cpu_percent && that_present_min_cpu_percent))
        return false;
      if (this.min_cpu_percent != that.min_cpu_percent)
        return false;
    }

    boolean this_present_max_cpu_percent = true && this.isSetMaxCpuPercent();
    boolean that_present_max_cpu_percent = true && that.isSetMaxCpuPercent();
    if (this_present_max_cpu_percent || that_present_max_cpu_percent) {
      if (!(this_present_max_cpu_percent && that_present_max_cpu_percent))
        return false;
      if (this.max_cpu_percent != that.max_cpu_percent)
        return false;
    }

    boolean this_present_mem_limit = true && this.isSetMemLimit();
    boolean that_present_mem_limit = true && that.isSetMemLimit();
    if (this_present_mem_limit || that_present_mem_limit) {
      if (!(this_present_mem_limit && that_present_mem_limit))
        return false;
      if (!this.mem_limit.equals(that.mem_limit))
        return false;
    }

    boolean this_present_enable_memory_overcommit = true && this.isSetEnableMemoryOvercommit();
    boolean that_present_enable_memory_overcommit = true && that.isSetEnableMemoryOvercommit();
    if (this_present_enable_memory_overcommit || that_present_enable_memory_overcommit) {
      if (!(this_present_enable_memory_overcommit && that_present_enable_memory_overcommit))
        return false;
      if (this.enable_memory_overcommit != that.enable_memory_overcommit)
        return false;
    }

    boolean this_present_enable_cpu_hard_limit = true && this.isSetEnableCpuHardLimit();
    boolean that_present_enable_cpu_hard_limit = true && that.isSetEnableCpuHardLimit();
    if (this_present_enable_cpu_hard_limit || that_present_enable_cpu_hard_limit) {
      if (!(this_present_enable_cpu_hard_limit && that_present_enable_cpu_hard_limit))
        return false;
      if (this.enable_cpu_hard_limit != that.enable_cpu_hard_limit)
        return false;
    }

    boolean this_present_scan_thread_num = true && this.isSetScanThreadNum();
    boolean that_present_scan_thread_num = true && that.isSetScanThreadNum();
    if (this_present_scan_thread_num || that_present_scan_thread_num) {
      if (!(this_present_scan_thread_num && that_present_scan_thread_num))
        return false;
      if (this.scan_thread_num != that.scan_thread_num)
        return false;
    }

    boolean this_present_max_remote_scan_thread_num = true && this.isSetMaxRemoteScanThreadNum();
    boolean that_present_max_remote_scan_thread_num = true && that.isSetMaxRemoteScanThreadNum();
    if (this_present_max_remote_scan_thread_num || that_present_max_remote_scan_thread_num) {
      if (!(this_present_max_remote_scan_thread_num && that_present_max_remote_scan_thread_num))
        return false;
      if (this.max_remote_scan_thread_num != that.max_remote_scan_thread_num)
        return false;
    }

    boolean this_present_min_remote_scan_thread_num = true && this.isSetMinRemoteScanThreadNum();
    boolean that_present_min_remote_scan_thread_num = true && that.isSetMinRemoteScanThreadNum();
    if (this_present_min_remote_scan_thread_num || that_present_min_remote_scan_thread_num) {
      if (!(this_present_min_remote_scan_thread_num && that_present_min_remote_scan_thread_num))
        return false;
      if (this.min_remote_scan_thread_num != that.min_remote_scan_thread_num)
        return false;
    }

    boolean this_present_memory_low_watermark = true && this.isSetMemoryLowWatermark();
    boolean that_present_memory_low_watermark = true && that.isSetMemoryLowWatermark();
    if (this_present_memory_low_watermark || that_present_memory_low_watermark) {
      if (!(this_present_memory_low_watermark && that_present_memory_low_watermark))
        return false;
      if (this.memory_low_watermark != that.memory_low_watermark)
        return false;
    }

    boolean this_present_memory_high_watermark = true && this.isSetMemoryHighWatermark();
    boolean that_present_memory_high_watermark = true && that.isSetMemoryHighWatermark();
    if (this_present_memory_high_watermark || that_present_memory_high_watermark) {
      if (!(this_present_memory_high_watermark && that_present_memory_high_watermark))
        return false;
      if (this.memory_high_watermark != that.memory_high_watermark)
        return false;
    }

    boolean this_present_read_bytes_per_second = true && this.isSetReadBytesPerSecond();
    boolean that_present_read_bytes_per_second = true && that.isSetReadBytesPerSecond();
    if (this_present_read_bytes_per_second || that_present_read_bytes_per_second) {
      if (!(this_present_read_bytes_per_second && that_present_read_bytes_per_second))
        return false;
      if (this.read_bytes_per_second != that.read_bytes_per_second)
        return false;
    }

    boolean this_present_remote_read_bytes_per_second = true && this.isSetRemoteReadBytesPerSecond();
    boolean that_present_remote_read_bytes_per_second = true && that.isSetRemoteReadBytesPerSecond();
    if (this_present_remote_read_bytes_per_second || that_present_remote_read_bytes_per_second) {
      if (!(this_present_remote_read_bytes_per_second && that_present_remote_read_bytes_per_second))
        return false;
      if (this.remote_read_bytes_per_second != that.remote_read_bytes_per_second)
        return false;
    }

    boolean this_present_tag = true && this.isSetTag();
    boolean that_present_tag = true && that.isSetTag();
    if (this_present_tag || that_present_tag) {
      if (!(this_present_tag && that_present_tag))
        return false;
      if (!this.tag.equals(that.tag))
        return false;
    }

    boolean this_present_total_query_slot_count = true && this.isSetTotalQuerySlotCount();
    boolean that_present_total_query_slot_count = true && that.isSetTotalQuerySlotCount();
    if (this_present_total_query_slot_count || that_present_total_query_slot_count) {
      if (!(this_present_total_query_slot_count && that_present_total_query_slot_count))
        return false;
      if (this.total_query_slot_count != that.total_query_slot_count)
        return false;
    }

    boolean this_present_write_buffer_ratio = true && this.isSetWriteBufferRatio();
    boolean that_present_write_buffer_ratio = true && that.isSetWriteBufferRatio();
    if (this_present_write_buffer_ratio || that_present_write_buffer_ratio) {
      if (!(this_present_write_buffer_ratio && that_present_write_buffer_ratio))
        return false;
      if (this.write_buffer_ratio != that.write_buffer_ratio)
        return false;
    }

    boolean this_present_slot_memory_policy = true && this.isSetSlotMemoryPolicy();
    boolean that_present_slot_memory_policy = true && that.isSetSlotMemoryPolicy();
    if (this_present_slot_memory_policy || that_present_slot_memory_policy) {
      if (!(this_present_slot_memory_policy && that_present_slot_memory_policy))
        return false;
      if (!this.slot_memory_policy.equals(that.slot_memory_policy))
        return false;
    }

    boolean this_present_min_memory_percent = true && this.isSetMinMemoryPercent();
    boolean that_present_min_memory_percent = true && that.isSetMinMemoryPercent();
    if (this_present_min_memory_percent || that_present_min_memory_percent) {
      if (!(this_present_min_memory_percent && that_present_min_memory_percent))
        return false;
      if (this.min_memory_percent != that.min_memory_percent)
        return false;
    }

    boolean this_present_max_memory_percent = true && this.isSetMaxMemoryPercent();
    boolean that_present_max_memory_percent = true && that.isSetMaxMemoryPercent();
    if (this_present_max_memory_percent || that_present_max_memory_percent) {
      if (!(this_present_max_memory_percent && that_present_max_memory_percent))
        return false;
      if (this.max_memory_percent != that.max_memory_percent)
        return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int hashCode = 1;

    hashCode = hashCode * 8191 + ((isSetId()) ? 131071 : 524287);
    if (isSetId())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(id);

    hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
    if (isSetName())
      hashCode = hashCode * 8191 + name.hashCode();

    hashCode = hashCode * 8191 + ((isSetVersion()) ? 131071 : 524287);
    if (isSetVersion())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(version);

    hashCode = hashCode * 8191 + ((isSetMinCpuPercent()) ? 131071 : 524287);
    if (isSetMinCpuPercent())
      hashCode = hashCode * 8191 + min_cpu_percent;

    hashCode = hashCode * 8191 + ((isSetMaxCpuPercent()) ? 131071 : 524287);
    if (isSetMaxCpuPercent())
      hashCode = hashCode * 8191 + max_cpu_percent;

    hashCode = hashCode * 8191 + ((isSetMemLimit()) ? 131071 : 524287);
    if (isSetMemLimit())
      hashCode = hashCode * 8191 + mem_limit.hashCode();

    hashCode = hashCode * 8191 + ((isSetEnableMemoryOvercommit()) ? 131071 : 524287);
    if (isSetEnableMemoryOvercommit())
      hashCode = hashCode * 8191 + ((enable_memory_overcommit) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetEnableCpuHardLimit()) ? 131071 : 524287);
    if (isSetEnableCpuHardLimit())
      hashCode = hashCode * 8191 + ((enable_cpu_hard_limit) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetScanThreadNum()) ? 131071 : 524287);
    if (isSetScanThreadNum())
      hashCode = hashCode * 8191 + scan_thread_num;

    hashCode = hashCode * 8191 + ((isSetMaxRemoteScanThreadNum()) ? 131071 : 524287);
    if (isSetMaxRemoteScanThreadNum())
      hashCode = hashCode * 8191 + max_remote_scan_thread_num;

    hashCode = hashCode * 8191 + ((isSetMinRemoteScanThreadNum()) ? 131071 : 524287);
    if (isSetMinRemoteScanThreadNum())
      hashCode = hashCode * 8191 + min_remote_scan_thread_num;

    hashCode = hashCode * 8191 + ((isSetMemoryLowWatermark()) ? 131071 : 524287);
    if (isSetMemoryLowWatermark())
      hashCode = hashCode * 8191 + memory_low_watermark;

    hashCode = hashCode * 8191 + ((isSetMemoryHighWatermark()) ? 131071 : 524287);
    if (isSetMemoryHighWatermark())
      hashCode = hashCode * 8191 + memory_high_watermark;

    hashCode = hashCode * 8191 + ((isSetReadBytesPerSecond()) ? 131071 : 524287);
    if (isSetReadBytesPerSecond())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(read_bytes_per_second);

    hashCode = hashCode * 8191 + ((isSetRemoteReadBytesPerSecond()) ? 131071 : 524287);
    if (isSetRemoteReadBytesPerSecond())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(remote_read_bytes_per_second);

    hashCode = hashCode * 8191 + ((isSetTag()) ? 131071 : 524287);
    if (isSetTag())
      hashCode = hashCode * 8191 + tag.hashCode();

    hashCode = hashCode * 8191 + ((isSetTotalQuerySlotCount()) ? 131071 : 524287);
    if (isSetTotalQuerySlotCount())
      hashCode = hashCode * 8191 + total_query_slot_count;

    hashCode = hashCode * 8191 + ((isSetWriteBufferRatio()) ? 131071 : 524287);
    if (isSetWriteBufferRatio())
      hashCode = hashCode * 8191 + write_buffer_ratio;

    hashCode = hashCode * 8191 + ((isSetSlotMemoryPolicy()) ? 131071 : 524287);
    if (isSetSlotMemoryPolicy())
      hashCode = hashCode * 8191 + slot_memory_policy.getValue();

    hashCode = hashCode * 8191 + ((isSetMinMemoryPercent()) ? 131071 : 524287);
    if (isSetMinMemoryPercent())
      hashCode = hashCode * 8191 + min_memory_percent;

    hashCode = hashCode * 8191 + ((isSetMaxMemoryPercent()) ? 131071 : 524287);
    if (isSetMaxMemoryPercent())
      hashCode = hashCode * 8191 + max_memory_percent;

    return hashCode;
  }

  @Override
  public int compareTo(TWorkloadGroupInfo other) {
    if (!getClass().equals(other.getClass())) {
      return getClass().getName().compareTo(other.getClass().getName());
    }

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetId(), other.isSetId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetName(), other.isSetName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetVersion(), other.isSetVersion());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetVersion()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version, other.version);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMinCpuPercent(), other.isSetMinCpuPercent());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMinCpuPercent()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.min_cpu_percent, other.min_cpu_percent);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxCpuPercent(), other.isSetMaxCpuPercent());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxCpuPercent()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_cpu_percent, other.max_cpu_percent);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMemLimit(), other.isSetMemLimit());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMemLimit()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.mem_limit, other.mem_limit);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEnableMemoryOvercommit(), other.isSetEnableMemoryOvercommit());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnableMemoryOvercommit()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enable_memory_overcommit, other.enable_memory_overcommit);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEnableCpuHardLimit(), other.isSetEnableCpuHardLimit());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEnableCpuHardLimit()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enable_cpu_hard_limit, other.enable_cpu_hard_limit);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetScanThreadNum(), other.isSetScanThreadNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetScanThreadNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scan_thread_num, other.scan_thread_num);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxRemoteScanThreadNum(), other.isSetMaxRemoteScanThreadNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxRemoteScanThreadNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_remote_scan_thread_num, other.max_remote_scan_thread_num);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMinRemoteScanThreadNum(), other.isSetMinRemoteScanThreadNum());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMinRemoteScanThreadNum()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.min_remote_scan_thread_num, other.min_remote_scan_thread_num);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMemoryLowWatermark(), other.isSetMemoryLowWatermark());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMemoryLowWatermark()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.memory_low_watermark, other.memory_low_watermark);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMemoryHighWatermark(), other.isSetMemoryHighWatermark());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMemoryHighWatermark()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.memory_high_watermark, other.memory_high_watermark);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetReadBytesPerSecond(), other.isSetReadBytesPerSecond());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReadBytesPerSecond()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.read_bytes_per_second, other.read_bytes_per_second);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRemoteReadBytesPerSecond(), other.isSetRemoteReadBytesPerSecond());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRemoteReadBytesPerSecond()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.remote_read_bytes_per_second, other.remote_read_bytes_per_second);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTag(), other.isSetTag());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTag()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tag, other.tag);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTotalQuerySlotCount(), other.isSetTotalQuerySlotCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTotalQuerySlotCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.total_query_slot_count, other.total_query_slot_count);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetWriteBufferRatio(), other.isSetWriteBufferRatio());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetWriteBufferRatio()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.write_buffer_ratio, other.write_buffer_ratio);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSlotMemoryPolicy(), other.isSetSlotMemoryPolicy());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSlotMemoryPolicy()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.slot_memory_policy, other.slot_memory_policy);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMinMemoryPercent(), other.isSetMinMemoryPercent());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMinMemoryPercent()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.min_memory_percent, other.min_memory_percent);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxMemoryPercent(), other.isSetMaxMemoryPercent());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxMemoryPercent()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_memory_percent, other.max_memory_percent);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    return 0;
  }

  @org.apache.thrift.annotation.Nullable
  public _Fields fieldForId(int fieldId) {
    return _Fields.findByThriftId(fieldId);
  }

  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
    scheme(iprot).read(iprot, this);
  }

  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
    scheme(oprot).write(oprot, this);
  }

  @Override
  public java.lang.String toString() {
    java.lang.StringBuilder sb = new java.lang.StringBuilder("TWorkloadGroupInfo(");
    boolean first = true;

    if (isSetId()) {
      sb.append("id:");
      sb.append(this.id);
      first = false;
    }
    if (isSetName()) {
      if (!first) sb.append(", ");
      sb.append("name:");
      if (this.name == null) {
        sb.append("null");
      } else {
        sb.append(this.name);
      }
      first = false;
    }
    if (isSetVersion()) {
      if (!first) sb.append(", ");
      sb.append("version:");
      sb.append(this.version);
      first = false;
    }
    if (isSetMinCpuPercent()) {
      if (!first) sb.append(", ");
      sb.append("min_cpu_percent:");
      sb.append(this.min_cpu_percent);
      first = false;
    }
    if (isSetMaxCpuPercent()) {
      if (!first) sb.append(", ");
      sb.append("max_cpu_percent:");
      sb.append(this.max_cpu_percent);
      first = false;
    }
    if (isSetMemLimit()) {
      if (!first) sb.append(", ");
      sb.append("mem_limit:");
      if (this.mem_limit == null) {
        sb.append("null");
      } else {
        sb.append(this.mem_limit);
      }
      first = false;
    }
    if (isSetEnableMemoryOvercommit()) {
      if (!first) sb.append(", ");
      sb.append("enable_memory_overcommit:");
      sb.append(this.enable_memory_overcommit);
      first = false;
    }
    if (isSetEnableCpuHardLimit()) {
      if (!first) sb.append(", ");
      sb.append("enable_cpu_hard_limit:");
      sb.append(this.enable_cpu_hard_limit);
      first = false;
    }
    if (isSetScanThreadNum()) {
      if (!first) sb.append(", ");
      sb.append("scan_thread_num:");
      sb.append(this.scan_thread_num);
      first = false;
    }
    if (isSetMaxRemoteScanThreadNum()) {
      if (!first) sb.append(", ");
      sb.append("max_remote_scan_thread_num:");
      sb.append(this.max_remote_scan_thread_num);
      first = false;
    }
    if (isSetMinRemoteScanThreadNum()) {
      if (!first) sb.append(", ");
      sb.append("min_remote_scan_thread_num:");
      sb.append(this.min_remote_scan_thread_num);
      first = false;
    }
    if (isSetMemoryLowWatermark()) {
      if (!first) sb.append(", ");
      sb.append("memory_low_watermark:");
      sb.append(this.memory_low_watermark);
      first = false;
    }
    if (isSetMemoryHighWatermark()) {
      if (!first) sb.append(", ");
      sb.append("memory_high_watermark:");
      sb.append(this.memory_high_watermark);
      first = false;
    }
    if (isSetReadBytesPerSecond()) {
      if (!first) sb.append(", ");
      sb.append("read_bytes_per_second:");
      sb.append(this.read_bytes_per_second);
      first = false;
    }
    if (isSetRemoteReadBytesPerSecond()) {
      if (!first) sb.append(", ");
      sb.append("remote_read_bytes_per_second:");
      sb.append(this.remote_read_bytes_per_second);
      first = false;
    }
    if (isSetTag()) {
      if (!first) sb.append(", ");
      sb.append("tag:");
      if (this.tag == null) {
        sb.append("null");
      } else {
        sb.append(this.tag);
      }
      first = false;
    }
    if (isSetTotalQuerySlotCount()) {
      if (!first) sb.append(", ");
      sb.append("total_query_slot_count:");
      sb.append(this.total_query_slot_count);
      first = false;
    }
    if (isSetWriteBufferRatio()) {
      if (!first) sb.append(", ");
      sb.append("write_buffer_ratio:");
      sb.append(this.write_buffer_ratio);
      first = false;
    }
    if (isSetSlotMemoryPolicy()) {
      if (!first) sb.append(", ");
      sb.append("slot_memory_policy:");
      if (this.slot_memory_policy == null) {
        sb.append("null");
      } else {
        sb.append(this.slot_memory_policy);
      }
      first = false;
    }
    if (isSetMinMemoryPercent()) {
      if (!first) sb.append(", ");
      sb.append("min_memory_percent:");
      sb.append(this.min_memory_percent);
      first = false;
    }
    if (isSetMaxMemoryPercent()) {
      if (!first) sb.append(", ");
      sb.append("max_memory_percent:");
      sb.append(this.max_memory_percent);
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    // check for sub-struct validity
  }

  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
    try {
      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
    try {
      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
      __isset_bitfield = 0;
      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
    } catch (org.apache.thrift.TException te) {
      throw new java.io.IOException(te);
    }
  }

  private static class TWorkloadGroupInfoStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TWorkloadGroupInfoStandardScheme getScheme() {
      return new TWorkloadGroupInfoStandardScheme();
    }
  }

  private static class TWorkloadGroupInfoStandardScheme extends org.apache.thrift.scheme.StandardScheme<TWorkloadGroupInfo> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TWorkloadGroupInfo struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TField schemeField;
      iprot.readStructBegin();
      while (true)
      {
        schemeField = iprot.readFieldBegin();
        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
          break;
        }
        switch (schemeField.id) {
          case 1: // ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.id = iprot.readI64();
              struct.setIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.name = iprot.readString();
              struct.setNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // VERSION
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.version = iprot.readI64();
              struct.setVersionIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // MIN_CPU_PERCENT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.min_cpu_percent = iprot.readI32();
              struct.setMinCpuPercentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // MAX_CPU_PERCENT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.max_cpu_percent = iprot.readI32();
              struct.setMaxCpuPercentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // MEM_LIMIT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.mem_limit = iprot.readString();
              struct.setMemLimitIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // ENABLE_MEMORY_OVERCOMMIT
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.enable_memory_overcommit = iprot.readBool();
              struct.setEnableMemoryOvercommitIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // ENABLE_CPU_HARD_LIMIT
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.enable_cpu_hard_limit = iprot.readBool();
              struct.setEnableCpuHardLimitIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // SCAN_THREAD_NUM
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.scan_thread_num = iprot.readI32();
              struct.setScanThreadNumIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // MAX_REMOTE_SCAN_THREAD_NUM
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.max_remote_scan_thread_num = iprot.readI32();
              struct.setMaxRemoteScanThreadNumIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // MIN_REMOTE_SCAN_THREAD_NUM
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.min_remote_scan_thread_num = iprot.readI32();
              struct.setMinRemoteScanThreadNumIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // MEMORY_LOW_WATERMARK
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.memory_low_watermark = iprot.readI32();
              struct.setMemoryLowWatermarkIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // MEMORY_HIGH_WATERMARK
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.memory_high_watermark = iprot.readI32();
              struct.setMemoryHighWatermarkIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // READ_BYTES_PER_SECOND
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.read_bytes_per_second = iprot.readI64();
              struct.setReadBytesPerSecondIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // REMOTE_READ_BYTES_PER_SECOND
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.remote_read_bytes_per_second = iprot.readI64();
              struct.setRemoteReadBytesPerSecondIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // TAG
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.tag = iprot.readString();
              struct.setTagIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // TOTAL_QUERY_SLOT_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.total_query_slot_count = iprot.readI32();
              struct.setTotalQuerySlotCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // WRITE_BUFFER_RATIO
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.write_buffer_ratio = iprot.readI32();
              struct.setWriteBufferRatioIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 19: // SLOT_MEMORY_POLICY
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.slot_memory_policy = org.apache.doris.thrift.TWgSlotMemoryPolicy.findByValue(iprot.readI32());
              struct.setSlotMemoryPolicyIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 20: // MIN_MEMORY_PERCENT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.min_memory_percent = iprot.readI32();
              struct.setMinMemoryPercentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 21: // MAX_MEMORY_PERCENT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.max_memory_percent = iprot.readI32();
              struct.setMaxMemoryPercentIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          default:
            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();
    }

    public void write(org.apache.thrift.protocol.TProtocol oprot, TWorkloadGroupInfo struct) throws org.apache.thrift.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.isSetId()) {
        oprot.writeFieldBegin(ID_FIELD_DESC);
        oprot.writeI64(struct.id);
        oprot.writeFieldEnd();
      }
      if (struct.name != null) {
        if (struct.isSetName()) {
          oprot.writeFieldBegin(NAME_FIELD_DESC);
          oprot.writeString(struct.name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetVersion()) {
        oprot.writeFieldBegin(VERSION_FIELD_DESC);
        oprot.writeI64(struct.version);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMinCpuPercent()) {
        oprot.writeFieldBegin(MIN_CPU_PERCENT_FIELD_DESC);
        oprot.writeI32(struct.min_cpu_percent);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMaxCpuPercent()) {
        oprot.writeFieldBegin(MAX_CPU_PERCENT_FIELD_DESC);
        oprot.writeI32(struct.max_cpu_percent);
        oprot.writeFieldEnd();
      }
      if (struct.mem_limit != null) {
        if (struct.isSetMemLimit()) {
          oprot.writeFieldBegin(MEM_LIMIT_FIELD_DESC);
          oprot.writeString(struct.mem_limit);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetEnableMemoryOvercommit()) {
        oprot.writeFieldBegin(ENABLE_MEMORY_OVERCOMMIT_FIELD_DESC);
        oprot.writeBool(struct.enable_memory_overcommit);
        oprot.writeFieldEnd();
      }
      if (struct.isSetEnableCpuHardLimit()) {
        oprot.writeFieldBegin(ENABLE_CPU_HARD_LIMIT_FIELD_DESC);
        oprot.writeBool(struct.enable_cpu_hard_limit);
        oprot.writeFieldEnd();
      }
      if (struct.isSetScanThreadNum()) {
        oprot.writeFieldBegin(SCAN_THREAD_NUM_FIELD_DESC);
        oprot.writeI32(struct.scan_thread_num);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMaxRemoteScanThreadNum()) {
        oprot.writeFieldBegin(MAX_REMOTE_SCAN_THREAD_NUM_FIELD_DESC);
        oprot.writeI32(struct.max_remote_scan_thread_num);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMinRemoteScanThreadNum()) {
        oprot.writeFieldBegin(MIN_REMOTE_SCAN_THREAD_NUM_FIELD_DESC);
        oprot.writeI32(struct.min_remote_scan_thread_num);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMemoryLowWatermark()) {
        oprot.writeFieldBegin(MEMORY_LOW_WATERMARK_FIELD_DESC);
        oprot.writeI32(struct.memory_low_watermark);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMemoryHighWatermark()) {
        oprot.writeFieldBegin(MEMORY_HIGH_WATERMARK_FIELD_DESC);
        oprot.writeI32(struct.memory_high_watermark);
        oprot.writeFieldEnd();
      }
      if (struct.isSetReadBytesPerSecond()) {
        oprot.writeFieldBegin(READ_BYTES_PER_SECOND_FIELD_DESC);
        oprot.writeI64(struct.read_bytes_per_second);
        oprot.writeFieldEnd();
      }
      if (struct.isSetRemoteReadBytesPerSecond()) {
        oprot.writeFieldBegin(REMOTE_READ_BYTES_PER_SECOND_FIELD_DESC);
        oprot.writeI64(struct.remote_read_bytes_per_second);
        oprot.writeFieldEnd();
      }
      if (struct.tag != null) {
        if (struct.isSetTag()) {
          oprot.writeFieldBegin(TAG_FIELD_DESC);
          oprot.writeString(struct.tag);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetTotalQuerySlotCount()) {
        oprot.writeFieldBegin(TOTAL_QUERY_SLOT_COUNT_FIELD_DESC);
        oprot.writeI32(struct.total_query_slot_count);
        oprot.writeFieldEnd();
      }
      if (struct.isSetWriteBufferRatio()) {
        oprot.writeFieldBegin(WRITE_BUFFER_RATIO_FIELD_DESC);
        oprot.writeI32(struct.write_buffer_ratio);
        oprot.writeFieldEnd();
      }
      if (struct.slot_memory_policy != null) {
        if (struct.isSetSlotMemoryPolicy()) {
          oprot.writeFieldBegin(SLOT_MEMORY_POLICY_FIELD_DESC);
          oprot.writeI32(struct.slot_memory_policy.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetMinMemoryPercent()) {
        oprot.writeFieldBegin(MIN_MEMORY_PERCENT_FIELD_DESC);
        oprot.writeI32(struct.min_memory_percent);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMaxMemoryPercent()) {
        oprot.writeFieldBegin(MAX_MEMORY_PERCENT_FIELD_DESC);
        oprot.writeI32(struct.max_memory_percent);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

  private static class TWorkloadGroupInfoTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TWorkloadGroupInfoTupleScheme getScheme() {
      return new TWorkloadGroupInfoTupleScheme();
    }
  }

  private static class TWorkloadGroupInfoTupleScheme extends org.apache.thrift.scheme.TupleScheme<TWorkloadGroupInfo> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TWorkloadGroupInfo struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetId()) {
        optionals.set(0);
      }
      if (struct.isSetName()) {
        optionals.set(1);
      }
      if (struct.isSetVersion()) {
        optionals.set(2);
      }
      if (struct.isSetMinCpuPercent()) {
        optionals.set(3);
      }
      if (struct.isSetMaxCpuPercent()) {
        optionals.set(4);
      }
      if (struct.isSetMemLimit()) {
        optionals.set(5);
      }
      if (struct.isSetEnableMemoryOvercommit()) {
        optionals.set(6);
      }
      if (struct.isSetEnableCpuHardLimit()) {
        optionals.set(7);
      }
      if (struct.isSetScanThreadNum()) {
        optionals.set(8);
      }
      if (struct.isSetMaxRemoteScanThreadNum()) {
        optionals.set(9);
      }
      if (struct.isSetMinRemoteScanThreadNum()) {
        optionals.set(10);
      }
      if (struct.isSetMemoryLowWatermark()) {
        optionals.set(11);
      }
      if (struct.isSetMemoryHighWatermark()) {
        optionals.set(12);
      }
      if (struct.isSetReadBytesPerSecond()) {
        optionals.set(13);
      }
      if (struct.isSetRemoteReadBytesPerSecond()) {
        optionals.set(14);
      }
      if (struct.isSetTag()) {
        optionals.set(15);
      }
      if (struct.isSetTotalQuerySlotCount()) {
        optionals.set(16);
      }
      if (struct.isSetWriteBufferRatio()) {
        optionals.set(17);
      }
      if (struct.isSetSlotMemoryPolicy()) {
        optionals.set(18);
      }
      if (struct.isSetMinMemoryPercent()) {
        optionals.set(19);
      }
      if (struct.isSetMaxMemoryPercent()) {
        optionals.set(20);
      }
      oprot.writeBitSet(optionals, 21);
      if (struct.isSetId()) {
        oprot.writeI64(struct.id);
      }
      if (struct.isSetName()) {
        oprot.writeString(struct.name);
      }
      if (struct.isSetVersion()) {
        oprot.writeI64(struct.version);
      }
      if (struct.isSetMinCpuPercent()) {
        oprot.writeI32(struct.min_cpu_percent);
      }
      if (struct.isSetMaxCpuPercent()) {
        oprot.writeI32(struct.max_cpu_percent);
      }
      if (struct.isSetMemLimit()) {
        oprot.writeString(struct.mem_limit);
      }
      if (struct.isSetEnableMemoryOvercommit()) {
        oprot.writeBool(struct.enable_memory_overcommit);
      }
      if (struct.isSetEnableCpuHardLimit()) {
        oprot.writeBool(struct.enable_cpu_hard_limit);
      }
      if (struct.isSetScanThreadNum()) {
        oprot.writeI32(struct.scan_thread_num);
      }
      if (struct.isSetMaxRemoteScanThreadNum()) {
        oprot.writeI32(struct.max_remote_scan_thread_num);
      }
      if (struct.isSetMinRemoteScanThreadNum()) {
        oprot.writeI32(struct.min_remote_scan_thread_num);
      }
      if (struct.isSetMemoryLowWatermark()) {
        oprot.writeI32(struct.memory_low_watermark);
      }
      if (struct.isSetMemoryHighWatermark()) {
        oprot.writeI32(struct.memory_high_watermark);
      }
      if (struct.isSetReadBytesPerSecond()) {
        oprot.writeI64(struct.read_bytes_per_second);
      }
      if (struct.isSetRemoteReadBytesPerSecond()) {
        oprot.writeI64(struct.remote_read_bytes_per_second);
      }
      if (struct.isSetTag()) {
        oprot.writeString(struct.tag);
      }
      if (struct.isSetTotalQuerySlotCount()) {
        oprot.writeI32(struct.total_query_slot_count);
      }
      if (struct.isSetWriteBufferRatio()) {
        oprot.writeI32(struct.write_buffer_ratio);
      }
      if (struct.isSetSlotMemoryPolicy()) {
        oprot.writeI32(struct.slot_memory_policy.getValue());
      }
      if (struct.isSetMinMemoryPercent()) {
        oprot.writeI32(struct.min_memory_percent);
      }
      if (struct.isSetMaxMemoryPercent()) {
        oprot.writeI32(struct.max_memory_percent);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TWorkloadGroupInfo struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(21);
      if (incoming.get(0)) {
        struct.id = iprot.readI64();
        struct.setIdIsSet(true);
      }
      if (incoming.get(1)) {
        struct.name = iprot.readString();
        struct.setNameIsSet(true);
      }
      if (incoming.get(2)) {
        struct.version = iprot.readI64();
        struct.setVersionIsSet(true);
      }
      if (incoming.get(3)) {
        struct.min_cpu_percent = iprot.readI32();
        struct.setMinCpuPercentIsSet(true);
      }
      if (incoming.get(4)) {
        struct.max_cpu_percent = iprot.readI32();
        struct.setMaxCpuPercentIsSet(true);
      }
      if (incoming.get(5)) {
        struct.mem_limit = iprot.readString();
        struct.setMemLimitIsSet(true);
      }
      if (incoming.get(6)) {
        struct.enable_memory_overcommit = iprot.readBool();
        struct.setEnableMemoryOvercommitIsSet(true);
      }
      if (incoming.get(7)) {
        struct.enable_cpu_hard_limit = iprot.readBool();
        struct.setEnableCpuHardLimitIsSet(true);
      }
      if (incoming.get(8)) {
        struct.scan_thread_num = iprot.readI32();
        struct.setScanThreadNumIsSet(true);
      }
      if (incoming.get(9)) {
        struct.max_remote_scan_thread_num = iprot.readI32();
        struct.setMaxRemoteScanThreadNumIsSet(true);
      }
      if (incoming.get(10)) {
        struct.min_remote_scan_thread_num = iprot.readI32();
        struct.setMinRemoteScanThreadNumIsSet(true);
      }
      if (incoming.get(11)) {
        struct.memory_low_watermark = iprot.readI32();
        struct.setMemoryLowWatermarkIsSet(true);
      }
      if (incoming.get(12)) {
        struct.memory_high_watermark = iprot.readI32();
        struct.setMemoryHighWatermarkIsSet(true);
      }
      if (incoming.get(13)) {
        struct.read_bytes_per_second = iprot.readI64();
        struct.setReadBytesPerSecondIsSet(true);
      }
      if (incoming.get(14)) {
        struct.remote_read_bytes_per_second = iprot.readI64();
        struct.setRemoteReadBytesPerSecondIsSet(true);
      }
      if (incoming.get(15)) {
        struct.tag = iprot.readString();
        struct.setTagIsSet(true);
      }
      if (incoming.get(16)) {
        struct.total_query_slot_count = iprot.readI32();
        struct.setTotalQuerySlotCountIsSet(true);
      }
      if (incoming.get(17)) {
        struct.write_buffer_ratio = iprot.readI32();
        struct.setWriteBufferRatioIsSet(true);
      }
      if (incoming.get(18)) {
        struct.slot_memory_policy = org.apache.doris.thrift.TWgSlotMemoryPolicy.findByValue(iprot.readI32());
        struct.setSlotMemoryPolicyIsSet(true);
      }
      if (incoming.get(19)) {
        struct.min_memory_percent = iprot.readI32();
        struct.setMinMemoryPercentIsSet(true);
      }
      if (incoming.get(20)) {
        struct.max_memory_percent = iprot.readI32();
        struct.setMaxMemoryPercentIsSet(true);
      }
    }
  }

  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
  }
}