TRoutineLoadTask.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 TRoutineLoadTask implements org.apache.thrift.TBase<TRoutineLoadTask, TRoutineLoadTask._Fields>, java.io.Serializable, Cloneable, Comparable<TRoutineLoadTask> {
  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TRoutineLoadTask");

  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)1);
  private static final org.apache.thrift.protocol.TField JOB_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("job_id", org.apache.thrift.protocol.TType.I64, (short)2);
  private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRUCT, (short)3);
  private static final org.apache.thrift.protocol.TField TXN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("txn_id", org.apache.thrift.protocol.TType.I64, (short)4);
  private static final org.apache.thrift.protocol.TField AUTH_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("auth_code", org.apache.thrift.protocol.TType.I64, (short)5);
  private static final org.apache.thrift.protocol.TField DB_FIELD_DESC = new org.apache.thrift.protocol.TField("db", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField TBL_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl", org.apache.thrift.protocol.TType.STRING, (short)7);
  private static final org.apache.thrift.protocol.TField LABEL_FIELD_DESC = new org.apache.thrift.protocol.TField("label", org.apache.thrift.protocol.TType.STRING, (short)8);
  private static final org.apache.thrift.protocol.TField MAX_INTERVAL_S_FIELD_DESC = new org.apache.thrift.protocol.TField("max_interval_s", org.apache.thrift.protocol.TType.I64, (short)9);
  private static final org.apache.thrift.protocol.TField MAX_BATCH_ROWS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_batch_rows", org.apache.thrift.protocol.TType.I64, (short)10);
  private static final org.apache.thrift.protocol.TField MAX_BATCH_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("max_batch_size", org.apache.thrift.protocol.TType.I64, (short)11);
  private static final org.apache.thrift.protocol.TField KAFKA_LOAD_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("kafka_load_info", org.apache.thrift.protocol.TType.STRUCT, (short)12);
  private static final org.apache.thrift.protocol.TField FORMAT_FIELD_DESC = new org.apache.thrift.protocol.TField("format", org.apache.thrift.protocol.TType.I32, (short)14);
  private static final org.apache.thrift.protocol.TField PIPELINE_PARAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("pipeline_params", org.apache.thrift.protocol.TType.STRUCT, (short)15);
  private static final org.apache.thrift.protocol.TField IS_MULTI_TABLE_FIELD_DESC = new org.apache.thrift.protocol.TField("is_multi_table", org.apache.thrift.protocol.TType.BOOL, (short)16);
  private static final org.apache.thrift.protocol.TField MEMTABLE_ON_SINK_NODE_FIELD_DESC = new org.apache.thrift.protocol.TField("memtable_on_sink_node", org.apache.thrift.protocol.TType.BOOL, (short)17);
  private static final org.apache.thrift.protocol.TField QUALIFIED_USER_FIELD_DESC = new org.apache.thrift.protocol.TField("qualified_user", org.apache.thrift.protocol.TType.STRING, (short)18);
  private static final org.apache.thrift.protocol.TField CLOUD_CLUSTER_FIELD_DESC = new org.apache.thrift.protocol.TField("cloud_cluster", org.apache.thrift.protocol.TType.STRING, (short)19);

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

  /**
   * 
   * @see org.apache.doris.thrift.TLoadSourceType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TLoadSourceType type; // required
  public long job_id; // required
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TUniqueId id; // required
  public long txn_id; // required
  public long auth_code; // required
  public @org.apache.thrift.annotation.Nullable java.lang.String db; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String tbl; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String label; // optional
  public long max_interval_s; // optional
  public long max_batch_rows; // optional
  public long max_batch_size; // optional
  public @org.apache.thrift.annotation.Nullable TKafkaLoadInfo kafka_load_info; // optional
  /**
   * 
   * @see org.apache.doris.thrift.TFileFormatType
   */
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileFormatType format; // optional
  public @org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TPipelineFragmentParams pipeline_params; // optional
  public boolean is_multi_table; // optional
  public boolean memtable_on_sink_node; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String qualified_user; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String cloud_cluster; // 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 {
    /**
     * 
     * @see org.apache.doris.thrift.TLoadSourceType
     */
    TYPE((short)1, "type"),
    JOB_ID((short)2, "job_id"),
    ID((short)3, "id"),
    TXN_ID((short)4, "txn_id"),
    AUTH_CODE((short)5, "auth_code"),
    DB((short)6, "db"),
    TBL((short)7, "tbl"),
    LABEL((short)8, "label"),
    MAX_INTERVAL_S((short)9, "max_interval_s"),
    MAX_BATCH_ROWS((short)10, "max_batch_rows"),
    MAX_BATCH_SIZE((short)11, "max_batch_size"),
    KAFKA_LOAD_INFO((short)12, "kafka_load_info"),
    /**
     * 
     * @see org.apache.doris.thrift.TFileFormatType
     */
    FORMAT((short)14, "format"),
    PIPELINE_PARAMS((short)15, "pipeline_params"),
    IS_MULTI_TABLE((short)16, "is_multi_table"),
    MEMTABLE_ON_SINK_NODE((short)17, "memtable_on_sink_node"),
    QUALIFIED_USER((short)18, "qualified_user"),
    CLOUD_CLUSTER((short)19, "cloud_cluster");

    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: // TYPE
          return TYPE;
        case 2: // JOB_ID
          return JOB_ID;
        case 3: // ID
          return ID;
        case 4: // TXN_ID
          return TXN_ID;
        case 5: // AUTH_CODE
          return AUTH_CODE;
        case 6: // DB
          return DB;
        case 7: // TBL
          return TBL;
        case 8: // LABEL
          return LABEL;
        case 9: // MAX_INTERVAL_S
          return MAX_INTERVAL_S;
        case 10: // MAX_BATCH_ROWS
          return MAX_BATCH_ROWS;
        case 11: // MAX_BATCH_SIZE
          return MAX_BATCH_SIZE;
        case 12: // KAFKA_LOAD_INFO
          return KAFKA_LOAD_INFO;
        case 14: // FORMAT
          return FORMAT;
        case 15: // PIPELINE_PARAMS
          return PIPELINE_PARAMS;
        case 16: // IS_MULTI_TABLE
          return IS_MULTI_TABLE;
        case 17: // MEMTABLE_ON_SINK_NODE
          return MEMTABLE_ON_SINK_NODE;
        case 18: // QUALIFIED_USER
          return QUALIFIED_USER;
        case 19: // CLOUD_CLUSTER
          return CLOUD_CLUSTER;
        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 __JOB_ID_ISSET_ID = 0;
  private static final int __TXN_ID_ISSET_ID = 1;
  private static final int __AUTH_CODE_ISSET_ID = 2;
  private static final int __MAX_INTERVAL_S_ISSET_ID = 3;
  private static final int __MAX_BATCH_ROWS_ISSET_ID = 4;
  private static final int __MAX_BATCH_SIZE_ISSET_ID = 5;
  private static final int __IS_MULTI_TABLE_ISSET_ID = 6;
  private static final int __MEMTABLE_ON_SINK_NODE_ISSET_ID = 7;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.DB,_Fields.TBL,_Fields.LABEL,_Fields.MAX_INTERVAL_S,_Fields.MAX_BATCH_ROWS,_Fields.MAX_BATCH_SIZE,_Fields.KAFKA_LOAD_INFO,_Fields.FORMAT,_Fields.PIPELINE_PARAMS,_Fields.IS_MULTI_TABLE,_Fields.MEMTABLE_ON_SINK_NODE,_Fields.QUALIFIED_USER,_Fields.CLOUD_CLUSTER};
  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.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TLoadSourceType.class)));
    tmpMap.put(_Fields.JOB_ID, new org.apache.thrift.meta_data.FieldMetaData("job_id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.doris.thrift.TUniqueId.class)));
    tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txn_id", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.AUTH_CODE, new org.apache.thrift.meta_data.FieldMetaData("auth_code", org.apache.thrift.TFieldRequirementType.REQUIRED, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.DB, new org.apache.thrift.meta_data.FieldMetaData("db", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TBL, new org.apache.thrift.meta_data.FieldMetaData("tbl", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.LABEL, new org.apache.thrift.meta_data.FieldMetaData("label", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.MAX_INTERVAL_S, new org.apache.thrift.meta_data.FieldMetaData("max_interval_s", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.MAX_BATCH_ROWS, new org.apache.thrift.meta_data.FieldMetaData("max_batch_rows", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.MAX_BATCH_SIZE, new org.apache.thrift.meta_data.FieldMetaData("max_batch_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.KAFKA_LOAD_INFO, new org.apache.thrift.meta_data.FieldMetaData("kafka_load_info", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TKafkaLoadInfo.class)));
    tmpMap.put(_Fields.FORMAT, new org.apache.thrift.meta_data.FieldMetaData("format", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, org.apache.doris.thrift.TFileFormatType.class)));
    tmpMap.put(_Fields.PIPELINE_PARAMS, new org.apache.thrift.meta_data.FieldMetaData("pipeline_params", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.doris.thrift.TPipelineFragmentParams.class)));
    tmpMap.put(_Fields.IS_MULTI_TABLE, new org.apache.thrift.meta_data.FieldMetaData("is_multi_table", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.MEMTABLE_ON_SINK_NODE, new org.apache.thrift.meta_data.FieldMetaData("memtable_on_sink_node", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
    tmpMap.put(_Fields.QUALIFIED_USER, new org.apache.thrift.meta_data.FieldMetaData("qualified_user", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.CLOUD_CLUSTER, new org.apache.thrift.meta_data.FieldMetaData("cloud_cluster", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TRoutineLoadTask.class, metaDataMap);
  }

  public TRoutineLoadTask() {
  }

  public TRoutineLoadTask(
    org.apache.doris.thrift.TLoadSourceType type,
    long job_id,
    org.apache.doris.thrift.TUniqueId id,
    long txn_id,
    long auth_code)
  {
    this();
    this.type = type;
    this.job_id = job_id;
    setJobIdIsSet(true);
    this.id = id;
    this.txn_id = txn_id;
    setTxnIdIsSet(true);
    this.auth_code = auth_code;
    setAuthCodeIsSet(true);
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TRoutineLoadTask(TRoutineLoadTask other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetType()) {
      this.type = other.type;
    }
    this.job_id = other.job_id;
    if (other.isSetId()) {
      this.id = new org.apache.doris.thrift.TUniqueId(other.id);
    }
    this.txn_id = other.txn_id;
    this.auth_code = other.auth_code;
    if (other.isSetDb()) {
      this.db = other.db;
    }
    if (other.isSetTbl()) {
      this.tbl = other.tbl;
    }
    if (other.isSetLabel()) {
      this.label = other.label;
    }
    this.max_interval_s = other.max_interval_s;
    this.max_batch_rows = other.max_batch_rows;
    this.max_batch_size = other.max_batch_size;
    if (other.isSetKafkaLoadInfo()) {
      this.kafka_load_info = new TKafkaLoadInfo(other.kafka_load_info);
    }
    if (other.isSetFormat()) {
      this.format = other.format;
    }
    if (other.isSetPipelineParams()) {
      this.pipeline_params = new org.apache.doris.thrift.TPipelineFragmentParams(other.pipeline_params);
    }
    this.is_multi_table = other.is_multi_table;
    this.memtable_on_sink_node = other.memtable_on_sink_node;
    if (other.isSetQualifiedUser()) {
      this.qualified_user = other.qualified_user;
    }
    if (other.isSetCloudCluster()) {
      this.cloud_cluster = other.cloud_cluster;
    }
  }

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

  @Override
  public void clear() {
    this.type = null;
    setJobIdIsSet(false);
    this.job_id = 0;
    this.id = null;
    setTxnIdIsSet(false);
    this.txn_id = 0;
    setAuthCodeIsSet(false);
    this.auth_code = 0;
    this.db = null;
    this.tbl = null;
    this.label = null;
    setMaxIntervalSIsSet(false);
    this.max_interval_s = 0;
    setMaxBatchRowsIsSet(false);
    this.max_batch_rows = 0;
    setMaxBatchSizeIsSet(false);
    this.max_batch_size = 0;
    this.kafka_load_info = null;
    this.format = null;
    this.pipeline_params = null;
    setIsMultiTableIsSet(false);
    this.is_multi_table = false;
    setMemtableOnSinkNodeIsSet(false);
    this.memtable_on_sink_node = false;
    this.qualified_user = null;
    this.cloud_cluster = null;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TLoadSourceType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TLoadSourceType getType() {
    return this.type;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TLoadSourceType
   */
  public TRoutineLoadTask setType(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TLoadSourceType type) {
    this.type = type;
    return this;
  }

  public void unsetType() {
    this.type = null;
  }

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

  public void setTypeIsSet(boolean value) {
    if (!value) {
      this.type = null;
    }
  }

  public long getJobId() {
    return this.job_id;
  }

  public TRoutineLoadTask setJobId(long job_id) {
    this.job_id = job_id;
    setJobIdIsSet(true);
    return this;
  }

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

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

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

  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TUniqueId getId() {
    return this.id;
  }

  public TRoutineLoadTask setId(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TUniqueId id) {
    this.id = id;
    return this;
  }

  public void unsetId() {
    this.id = null;
  }

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

  public void setIdIsSet(boolean value) {
    if (!value) {
      this.id = null;
    }
  }

  public long getTxnId() {
    return this.txn_id;
  }

  public TRoutineLoadTask setTxnId(long txn_id) {
    this.txn_id = txn_id;
    setTxnIdIsSet(true);
    return this;
  }

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

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

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

  public long getAuthCode() {
    return this.auth_code;
  }

  public TRoutineLoadTask setAuthCode(long auth_code) {
    this.auth_code = auth_code;
    setAuthCodeIsSet(true);
    return this;
  }

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

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

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

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

  public TRoutineLoadTask setDb(@org.apache.thrift.annotation.Nullable java.lang.String db) {
    this.db = db;
    return this;
  }

  public void unsetDb() {
    this.db = null;
  }

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

  public void setDbIsSet(boolean value) {
    if (!value) {
      this.db = null;
    }
  }

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

  public TRoutineLoadTask setTbl(@org.apache.thrift.annotation.Nullable java.lang.String tbl) {
    this.tbl = tbl;
    return this;
  }

  public void unsetTbl() {
    this.tbl = null;
  }

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

  public void setTblIsSet(boolean value) {
    if (!value) {
      this.tbl = null;
    }
  }

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

  public TRoutineLoadTask setLabel(@org.apache.thrift.annotation.Nullable java.lang.String label) {
    this.label = label;
    return this;
  }

  public void unsetLabel() {
    this.label = null;
  }

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

  public void setLabelIsSet(boolean value) {
    if (!value) {
      this.label = null;
    }
  }

  public long getMaxIntervalS() {
    return this.max_interval_s;
  }

  public TRoutineLoadTask setMaxIntervalS(long max_interval_s) {
    this.max_interval_s = max_interval_s;
    setMaxIntervalSIsSet(true);
    return this;
  }

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

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

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

  public long getMaxBatchRows() {
    return this.max_batch_rows;
  }

  public TRoutineLoadTask setMaxBatchRows(long max_batch_rows) {
    this.max_batch_rows = max_batch_rows;
    setMaxBatchRowsIsSet(true);
    return this;
  }

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

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

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

  public long getMaxBatchSize() {
    return this.max_batch_size;
  }

  public TRoutineLoadTask setMaxBatchSize(long max_batch_size) {
    this.max_batch_size = max_batch_size;
    setMaxBatchSizeIsSet(true);
    return this;
  }

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

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

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

  @org.apache.thrift.annotation.Nullable
  public TKafkaLoadInfo getKafkaLoadInfo() {
    return this.kafka_load_info;
  }

  public TRoutineLoadTask setKafkaLoadInfo(@org.apache.thrift.annotation.Nullable TKafkaLoadInfo kafka_load_info) {
    this.kafka_load_info = kafka_load_info;
    return this;
  }

  public void unsetKafkaLoadInfo() {
    this.kafka_load_info = null;
  }

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

  public void setKafkaLoadInfoIsSet(boolean value) {
    if (!value) {
      this.kafka_load_info = null;
    }
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileFormatType
   */
  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TFileFormatType getFormat() {
    return this.format;
  }

  /**
   * 
   * @see org.apache.doris.thrift.TFileFormatType
   */
  public TRoutineLoadTask setFormat(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TFileFormatType format) {
    this.format = format;
    return this;
  }

  public void unsetFormat() {
    this.format = null;
  }

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

  public void setFormatIsSet(boolean value) {
    if (!value) {
      this.format = null;
    }
  }

  @org.apache.thrift.annotation.Nullable
  public org.apache.doris.thrift.TPipelineFragmentParams getPipelineParams() {
    return this.pipeline_params;
  }

  public TRoutineLoadTask setPipelineParams(@org.apache.thrift.annotation.Nullable org.apache.doris.thrift.TPipelineFragmentParams pipeline_params) {
    this.pipeline_params = pipeline_params;
    return this;
  }

  public void unsetPipelineParams() {
    this.pipeline_params = null;
  }

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

  public void setPipelineParamsIsSet(boolean value) {
    if (!value) {
      this.pipeline_params = null;
    }
  }

  public boolean isIsMultiTable() {
    return this.is_multi_table;
  }

  public TRoutineLoadTask setIsMultiTable(boolean is_multi_table) {
    this.is_multi_table = is_multi_table;
    setIsMultiTableIsSet(true);
    return this;
  }

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

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

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

  public boolean isMemtableOnSinkNode() {
    return this.memtable_on_sink_node;
  }

  public TRoutineLoadTask setMemtableOnSinkNode(boolean memtable_on_sink_node) {
    this.memtable_on_sink_node = memtable_on_sink_node;
    setMemtableOnSinkNodeIsSet(true);
    return this;
  }

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

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

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

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

  public TRoutineLoadTask setQualifiedUser(@org.apache.thrift.annotation.Nullable java.lang.String qualified_user) {
    this.qualified_user = qualified_user;
    return this;
  }

  public void unsetQualifiedUser() {
    this.qualified_user = null;
  }

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

  public void setQualifiedUserIsSet(boolean value) {
    if (!value) {
      this.qualified_user = null;
    }
  }

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

  public TRoutineLoadTask setCloudCluster(@org.apache.thrift.annotation.Nullable java.lang.String cloud_cluster) {
    this.cloud_cluster = cloud_cluster;
    return this;
  }

  public void unsetCloudCluster() {
    this.cloud_cluster = null;
  }

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

  public void setCloudClusterIsSet(boolean value) {
    if (!value) {
      this.cloud_cluster = null;
    }
  }

  public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case TYPE:
      if (value == null) {
        unsetType();
      } else {
        setType((org.apache.doris.thrift.TLoadSourceType)value);
      }
      break;

    case JOB_ID:
      if (value == null) {
        unsetJobId();
      } else {
        setJobId((java.lang.Long)value);
      }
      break;

    case ID:
      if (value == null) {
        unsetId();
      } else {
        setId((org.apache.doris.thrift.TUniqueId)value);
      }
      break;

    case TXN_ID:
      if (value == null) {
        unsetTxnId();
      } else {
        setTxnId((java.lang.Long)value);
      }
      break;

    case AUTH_CODE:
      if (value == null) {
        unsetAuthCode();
      } else {
        setAuthCode((java.lang.Long)value);
      }
      break;

    case DB:
      if (value == null) {
        unsetDb();
      } else {
        setDb((java.lang.String)value);
      }
      break;

    case TBL:
      if (value == null) {
        unsetTbl();
      } else {
        setTbl((java.lang.String)value);
      }
      break;

    case LABEL:
      if (value == null) {
        unsetLabel();
      } else {
        setLabel((java.lang.String)value);
      }
      break;

    case MAX_INTERVAL_S:
      if (value == null) {
        unsetMaxIntervalS();
      } else {
        setMaxIntervalS((java.lang.Long)value);
      }
      break;

    case MAX_BATCH_ROWS:
      if (value == null) {
        unsetMaxBatchRows();
      } else {
        setMaxBatchRows((java.lang.Long)value);
      }
      break;

    case MAX_BATCH_SIZE:
      if (value == null) {
        unsetMaxBatchSize();
      } else {
        setMaxBatchSize((java.lang.Long)value);
      }
      break;

    case KAFKA_LOAD_INFO:
      if (value == null) {
        unsetKafkaLoadInfo();
      } else {
        setKafkaLoadInfo((TKafkaLoadInfo)value);
      }
      break;

    case FORMAT:
      if (value == null) {
        unsetFormat();
      } else {
        setFormat((org.apache.doris.thrift.TFileFormatType)value);
      }
      break;

    case PIPELINE_PARAMS:
      if (value == null) {
        unsetPipelineParams();
      } else {
        setPipelineParams((org.apache.doris.thrift.TPipelineFragmentParams)value);
      }
      break;

    case IS_MULTI_TABLE:
      if (value == null) {
        unsetIsMultiTable();
      } else {
        setIsMultiTable((java.lang.Boolean)value);
      }
      break;

    case MEMTABLE_ON_SINK_NODE:
      if (value == null) {
        unsetMemtableOnSinkNode();
      } else {
        setMemtableOnSinkNode((java.lang.Boolean)value);
      }
      break;

    case QUALIFIED_USER:
      if (value == null) {
        unsetQualifiedUser();
      } else {
        setQualifiedUser((java.lang.String)value);
      }
      break;

    case CLOUD_CLUSTER:
      if (value == null) {
        unsetCloudCluster();
      } else {
        setCloudCluster((java.lang.String)value);
      }
      break;

    }
  }

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

    case JOB_ID:
      return getJobId();

    case ID:
      return getId();

    case TXN_ID:
      return getTxnId();

    case AUTH_CODE:
      return getAuthCode();

    case DB:
      return getDb();

    case TBL:
      return getTbl();

    case LABEL:
      return getLabel();

    case MAX_INTERVAL_S:
      return getMaxIntervalS();

    case MAX_BATCH_ROWS:
      return getMaxBatchRows();

    case MAX_BATCH_SIZE:
      return getMaxBatchSize();

    case KAFKA_LOAD_INFO:
      return getKafkaLoadInfo();

    case FORMAT:
      return getFormat();

    case PIPELINE_PARAMS:
      return getPipelineParams();

    case IS_MULTI_TABLE:
      return isIsMultiTable();

    case MEMTABLE_ON_SINK_NODE:
      return isMemtableOnSinkNode();

    case QUALIFIED_USER:
      return getQualifiedUser();

    case CLOUD_CLUSTER:
      return getCloudCluster();

    }
    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 TYPE:
      return isSetType();
    case JOB_ID:
      return isSetJobId();
    case ID:
      return isSetId();
    case TXN_ID:
      return isSetTxnId();
    case AUTH_CODE:
      return isSetAuthCode();
    case DB:
      return isSetDb();
    case TBL:
      return isSetTbl();
    case LABEL:
      return isSetLabel();
    case MAX_INTERVAL_S:
      return isSetMaxIntervalS();
    case MAX_BATCH_ROWS:
      return isSetMaxBatchRows();
    case MAX_BATCH_SIZE:
      return isSetMaxBatchSize();
    case KAFKA_LOAD_INFO:
      return isSetKafkaLoadInfo();
    case FORMAT:
      return isSetFormat();
    case PIPELINE_PARAMS:
      return isSetPipelineParams();
    case IS_MULTI_TABLE:
      return isSetIsMultiTable();
    case MEMTABLE_ON_SINK_NODE:
      return isSetMemtableOnSinkNode();
    case QUALIFIED_USER:
      return isSetQualifiedUser();
    case CLOUD_CLUSTER:
      return isSetCloudCluster();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_type = true && this.isSetType();
    boolean that_present_type = true && that.isSetType();
    if (this_present_type || that_present_type) {
      if (!(this_present_type && that_present_type))
        return false;
      if (!this.type.equals(that.type))
        return false;
    }

    boolean this_present_job_id = true;
    boolean that_present_job_id = true;
    if (this_present_job_id || that_present_job_id) {
      if (!(this_present_job_id && that_present_job_id))
        return false;
      if (this.job_id != that.job_id)
        return false;
    }

    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.equals(that.id))
        return false;
    }

    boolean this_present_txn_id = true;
    boolean that_present_txn_id = true;
    if (this_present_txn_id || that_present_txn_id) {
      if (!(this_present_txn_id && that_present_txn_id))
        return false;
      if (this.txn_id != that.txn_id)
        return false;
    }

    boolean this_present_auth_code = true;
    boolean that_present_auth_code = true;
    if (this_present_auth_code || that_present_auth_code) {
      if (!(this_present_auth_code && that_present_auth_code))
        return false;
      if (this.auth_code != that.auth_code)
        return false;
    }

    boolean this_present_db = true && this.isSetDb();
    boolean that_present_db = true && that.isSetDb();
    if (this_present_db || that_present_db) {
      if (!(this_present_db && that_present_db))
        return false;
      if (!this.db.equals(that.db))
        return false;
    }

    boolean this_present_tbl = true && this.isSetTbl();
    boolean that_present_tbl = true && that.isSetTbl();
    if (this_present_tbl || that_present_tbl) {
      if (!(this_present_tbl && that_present_tbl))
        return false;
      if (!this.tbl.equals(that.tbl))
        return false;
    }

    boolean this_present_label = true && this.isSetLabel();
    boolean that_present_label = true && that.isSetLabel();
    if (this_present_label || that_present_label) {
      if (!(this_present_label && that_present_label))
        return false;
      if (!this.label.equals(that.label))
        return false;
    }

    boolean this_present_max_interval_s = true && this.isSetMaxIntervalS();
    boolean that_present_max_interval_s = true && that.isSetMaxIntervalS();
    if (this_present_max_interval_s || that_present_max_interval_s) {
      if (!(this_present_max_interval_s && that_present_max_interval_s))
        return false;
      if (this.max_interval_s != that.max_interval_s)
        return false;
    }

    boolean this_present_max_batch_rows = true && this.isSetMaxBatchRows();
    boolean that_present_max_batch_rows = true && that.isSetMaxBatchRows();
    if (this_present_max_batch_rows || that_present_max_batch_rows) {
      if (!(this_present_max_batch_rows && that_present_max_batch_rows))
        return false;
      if (this.max_batch_rows != that.max_batch_rows)
        return false;
    }

    boolean this_present_max_batch_size = true && this.isSetMaxBatchSize();
    boolean that_present_max_batch_size = true && that.isSetMaxBatchSize();
    if (this_present_max_batch_size || that_present_max_batch_size) {
      if (!(this_present_max_batch_size && that_present_max_batch_size))
        return false;
      if (this.max_batch_size != that.max_batch_size)
        return false;
    }

    boolean this_present_kafka_load_info = true && this.isSetKafkaLoadInfo();
    boolean that_present_kafka_load_info = true && that.isSetKafkaLoadInfo();
    if (this_present_kafka_load_info || that_present_kafka_load_info) {
      if (!(this_present_kafka_load_info && that_present_kafka_load_info))
        return false;
      if (!this.kafka_load_info.equals(that.kafka_load_info))
        return false;
    }

    boolean this_present_format = true && this.isSetFormat();
    boolean that_present_format = true && that.isSetFormat();
    if (this_present_format || that_present_format) {
      if (!(this_present_format && that_present_format))
        return false;
      if (!this.format.equals(that.format))
        return false;
    }

    boolean this_present_pipeline_params = true && this.isSetPipelineParams();
    boolean that_present_pipeline_params = true && that.isSetPipelineParams();
    if (this_present_pipeline_params || that_present_pipeline_params) {
      if (!(this_present_pipeline_params && that_present_pipeline_params))
        return false;
      if (!this.pipeline_params.equals(that.pipeline_params))
        return false;
    }

    boolean this_present_is_multi_table = true && this.isSetIsMultiTable();
    boolean that_present_is_multi_table = true && that.isSetIsMultiTable();
    if (this_present_is_multi_table || that_present_is_multi_table) {
      if (!(this_present_is_multi_table && that_present_is_multi_table))
        return false;
      if (this.is_multi_table != that.is_multi_table)
        return false;
    }

    boolean this_present_memtable_on_sink_node = true && this.isSetMemtableOnSinkNode();
    boolean that_present_memtable_on_sink_node = true && that.isSetMemtableOnSinkNode();
    if (this_present_memtable_on_sink_node || that_present_memtable_on_sink_node) {
      if (!(this_present_memtable_on_sink_node && that_present_memtable_on_sink_node))
        return false;
      if (this.memtable_on_sink_node != that.memtable_on_sink_node)
        return false;
    }

    boolean this_present_qualified_user = true && this.isSetQualifiedUser();
    boolean that_present_qualified_user = true && that.isSetQualifiedUser();
    if (this_present_qualified_user || that_present_qualified_user) {
      if (!(this_present_qualified_user && that_present_qualified_user))
        return false;
      if (!this.qualified_user.equals(that.qualified_user))
        return false;
    }

    boolean this_present_cloud_cluster = true && this.isSetCloudCluster();
    boolean that_present_cloud_cluster = true && that.isSetCloudCluster();
    if (this_present_cloud_cluster || that_present_cloud_cluster) {
      if (!(this_present_cloud_cluster && that_present_cloud_cluster))
        return false;
      if (!this.cloud_cluster.equals(that.cloud_cluster))
        return false;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + ((isSetType()) ? 131071 : 524287);
    if (isSetType())
      hashCode = hashCode * 8191 + type.getValue();

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(job_id);

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

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(txn_id);

    hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(auth_code);

    hashCode = hashCode * 8191 + ((isSetDb()) ? 131071 : 524287);
    if (isSetDb())
      hashCode = hashCode * 8191 + db.hashCode();

    hashCode = hashCode * 8191 + ((isSetTbl()) ? 131071 : 524287);
    if (isSetTbl())
      hashCode = hashCode * 8191 + tbl.hashCode();

    hashCode = hashCode * 8191 + ((isSetLabel()) ? 131071 : 524287);
    if (isSetLabel())
      hashCode = hashCode * 8191 + label.hashCode();

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

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

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

    hashCode = hashCode * 8191 + ((isSetKafkaLoadInfo()) ? 131071 : 524287);
    if (isSetKafkaLoadInfo())
      hashCode = hashCode * 8191 + kafka_load_info.hashCode();

    hashCode = hashCode * 8191 + ((isSetFormat()) ? 131071 : 524287);
    if (isSetFormat())
      hashCode = hashCode * 8191 + format.getValue();

    hashCode = hashCode * 8191 + ((isSetPipelineParams()) ? 131071 : 524287);
    if (isSetPipelineParams())
      hashCode = hashCode * 8191 + pipeline_params.hashCode();

    hashCode = hashCode * 8191 + ((isSetIsMultiTable()) ? 131071 : 524287);
    if (isSetIsMultiTable())
      hashCode = hashCode * 8191 + ((is_multi_table) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetMemtableOnSinkNode()) ? 131071 : 524287);
    if (isSetMemtableOnSinkNode())
      hashCode = hashCode * 8191 + ((memtable_on_sink_node) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetQualifiedUser()) ? 131071 : 524287);
    if (isSetQualifiedUser())
      hashCode = hashCode * 8191 + qualified_user.hashCode();

    hashCode = hashCode * 8191 + ((isSetCloudCluster()) ? 131071 : 524287);
    if (isSetCloudCluster())
      hashCode = hashCode * 8191 + cloud_cluster.hashCode();

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetType(), other.isSetType());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetType()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.type, other.type);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetJobId(), other.isSetJobId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetJobId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.job_id, other.job_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    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(isSetTxnId(), other.isSetTxnId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTxnId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txn_id, other.txn_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAuthCode(), other.isSetAuthCode());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAuthCode()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.auth_code, other.auth_code);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetDb(), other.isSetDb());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetDb()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.db, other.db);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTbl(), other.isSetTbl());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTbl()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl, other.tbl);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetLabel(), other.isSetLabel());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetLabel()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.label, other.label);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxIntervalS(), other.isSetMaxIntervalS());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxIntervalS()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_interval_s, other.max_interval_s);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxBatchRows(), other.isSetMaxBatchRows());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxBatchRows()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_batch_rows, other.max_batch_rows);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxBatchSize(), other.isSetMaxBatchSize());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxBatchSize()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_batch_size, other.max_batch_size);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetKafkaLoadInfo(), other.isSetKafkaLoadInfo());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetKafkaLoadInfo()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.kafka_load_info, other.kafka_load_info);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetFormat(), other.isSetFormat());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetFormat()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.format, other.format);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPipelineParams(), other.isSetPipelineParams());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPipelineParams()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pipeline_params, other.pipeline_params);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetIsMultiTable(), other.isSetIsMultiTable());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetIsMultiTable()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.is_multi_table, other.is_multi_table);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMemtableOnSinkNode(), other.isSetMemtableOnSinkNode());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMemtableOnSinkNode()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.memtable_on_sink_node, other.memtable_on_sink_node);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetQualifiedUser(), other.isSetQualifiedUser());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetQualifiedUser()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.qualified_user, other.qualified_user);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetCloudCluster(), other.isSetCloudCluster());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetCloudCluster()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.cloud_cluster, other.cloud_cluster);
      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("TRoutineLoadTask(");
    boolean first = true;

    sb.append("type:");
    if (this.type == null) {
      sb.append("null");
    } else {
      sb.append(this.type);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("job_id:");
    sb.append(this.job_id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("id:");
    if (this.id == null) {
      sb.append("null");
    } else {
      sb.append(this.id);
    }
    first = false;
    if (!first) sb.append(", ");
    sb.append("txn_id:");
    sb.append(this.txn_id);
    first = false;
    if (!first) sb.append(", ");
    sb.append("auth_code:");
    sb.append(this.auth_code);
    first = false;
    if (isSetDb()) {
      if (!first) sb.append(", ");
      sb.append("db:");
      if (this.db == null) {
        sb.append("null");
      } else {
        sb.append(this.db);
      }
      first = false;
    }
    if (isSetTbl()) {
      if (!first) sb.append(", ");
      sb.append("tbl:");
      if (this.tbl == null) {
        sb.append("null");
      } else {
        sb.append(this.tbl);
      }
      first = false;
    }
    if (isSetLabel()) {
      if (!first) sb.append(", ");
      sb.append("label:");
      if (this.label == null) {
        sb.append("null");
      } else {
        sb.append(this.label);
      }
      first = false;
    }
    if (isSetMaxIntervalS()) {
      if (!first) sb.append(", ");
      sb.append("max_interval_s:");
      sb.append(this.max_interval_s);
      first = false;
    }
    if (isSetMaxBatchRows()) {
      if (!first) sb.append(", ");
      sb.append("max_batch_rows:");
      sb.append(this.max_batch_rows);
      first = false;
    }
    if (isSetMaxBatchSize()) {
      if (!first) sb.append(", ");
      sb.append("max_batch_size:");
      sb.append(this.max_batch_size);
      first = false;
    }
    if (isSetKafkaLoadInfo()) {
      if (!first) sb.append(", ");
      sb.append("kafka_load_info:");
      if (this.kafka_load_info == null) {
        sb.append("null");
      } else {
        sb.append(this.kafka_load_info);
      }
      first = false;
    }
    if (isSetFormat()) {
      if (!first) sb.append(", ");
      sb.append("format:");
      if (this.format == null) {
        sb.append("null");
      } else {
        sb.append(this.format);
      }
      first = false;
    }
    if (isSetPipelineParams()) {
      if (!first) sb.append(", ");
      sb.append("pipeline_params:");
      if (this.pipeline_params == null) {
        sb.append("null");
      } else {
        sb.append(this.pipeline_params);
      }
      first = false;
    }
    if (isSetIsMultiTable()) {
      if (!first) sb.append(", ");
      sb.append("is_multi_table:");
      sb.append(this.is_multi_table);
      first = false;
    }
    if (isSetMemtableOnSinkNode()) {
      if (!first) sb.append(", ");
      sb.append("memtable_on_sink_node:");
      sb.append(this.memtable_on_sink_node);
      first = false;
    }
    if (isSetQualifiedUser()) {
      if (!first) sb.append(", ");
      sb.append("qualified_user:");
      if (this.qualified_user == null) {
        sb.append("null");
      } else {
        sb.append(this.qualified_user);
      }
      first = false;
    }
    if (isSetCloudCluster()) {
      if (!first) sb.append(", ");
      sb.append("cloud_cluster:");
      if (this.cloud_cluster == null) {
        sb.append("null");
      } else {
        sb.append(this.cloud_cluster);
      }
      first = false;
    }
    sb.append(")");
    return sb.toString();
  }

  public void validate() throws org.apache.thrift.TException {
    // check for required fields
    if (type == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'type' was not present! Struct: " + toString());
    }
    // alas, we cannot check 'job_id' because it's a primitive and you chose the non-beans generator.
    if (id == null) {
      throw new org.apache.thrift.protocol.TProtocolException("Required field 'id' was not present! Struct: " + toString());
    }
    // alas, we cannot check 'txn_id' because it's a primitive and you chose the non-beans generator.
    // alas, we cannot check 'auth_code' because it's a primitive and you chose the non-beans generator.
    // check for sub-struct validity
    if (id != null) {
      id.validate();
    }
    if (kafka_load_info != null) {
      kafka_load_info.validate();
    }
    if (pipeline_params != null) {
      pipeline_params.validate();
    }
  }

  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 TRoutineLoadTaskStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TRoutineLoadTaskStandardScheme getScheme() {
      return new TRoutineLoadTaskStandardScheme();
    }
  }

  private static class TRoutineLoadTaskStandardScheme extends org.apache.thrift.scheme.StandardScheme<TRoutineLoadTask> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TRoutineLoadTask 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: // TYPE
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.type = org.apache.doris.thrift.TLoadSourceType.findByValue(iprot.readI32());
              struct.setTypeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // JOB_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.job_id = iprot.readI64();
              struct.setJobIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.id = new org.apache.doris.thrift.TUniqueId();
              struct.id.read(iprot);
              struct.setIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // TXN_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.txn_id = iprot.readI64();
              struct.setTxnIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // AUTH_CODE
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.auth_code = iprot.readI64();
              struct.setAuthCodeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // DB
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.db = iprot.readString();
              struct.setDbIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // TBL
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.tbl = iprot.readString();
              struct.setTblIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // LABEL
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.label = iprot.readString();
              struct.setLabelIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // MAX_INTERVAL_S
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.max_interval_s = iprot.readI64();
              struct.setMaxIntervalSIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // MAX_BATCH_ROWS
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.max_batch_rows = iprot.readI64();
              struct.setMaxBatchRowsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // MAX_BATCH_SIZE
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.max_batch_size = iprot.readI64();
              struct.setMaxBatchSizeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // KAFKA_LOAD_INFO
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.kafka_load_info = new TKafkaLoadInfo();
              struct.kafka_load_info.read(iprot);
              struct.setKafkaLoadInfoIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // FORMAT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.format = org.apache.doris.thrift.TFileFormatType.findByValue(iprot.readI32());
              struct.setFormatIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // PIPELINE_PARAMS
            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
              struct.pipeline_params = new org.apache.doris.thrift.TPipelineFragmentParams();
              struct.pipeline_params.read(iprot);
              struct.setPipelineParamsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // IS_MULTI_TABLE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.is_multi_table = iprot.readBool();
              struct.setIsMultiTableIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // MEMTABLE_ON_SINK_NODE
            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
              struct.memtable_on_sink_node = iprot.readBool();
              struct.setMemtableOnSinkNodeIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // QUALIFIED_USER
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.qualified_user = iprot.readString();
              struct.setQualifiedUserIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 19: // CLOUD_CLUSTER
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.cloud_cluster = iprot.readString();
              struct.setCloudClusterIsSet(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
      if (!struct.isSetJobId()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'job_id' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetTxnId()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'txn_id' was not found in serialized data! Struct: " + toString());
      }
      if (!struct.isSetAuthCode()) {
        throw new org.apache.thrift.protocol.TProtocolException("Required field 'auth_code' was not found in serialized data! Struct: " + toString());
      }
      struct.validate();
    }

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

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.type != null) {
        oprot.writeFieldBegin(TYPE_FIELD_DESC);
        oprot.writeI32(struct.type.getValue());
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(JOB_ID_FIELD_DESC);
      oprot.writeI64(struct.job_id);
      oprot.writeFieldEnd();
      if (struct.id != null) {
        oprot.writeFieldBegin(ID_FIELD_DESC);
        struct.id.write(oprot);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
      oprot.writeI64(struct.txn_id);
      oprot.writeFieldEnd();
      oprot.writeFieldBegin(AUTH_CODE_FIELD_DESC);
      oprot.writeI64(struct.auth_code);
      oprot.writeFieldEnd();
      if (struct.db != null) {
        if (struct.isSetDb()) {
          oprot.writeFieldBegin(DB_FIELD_DESC);
          oprot.writeString(struct.db);
          oprot.writeFieldEnd();
        }
      }
      if (struct.tbl != null) {
        if (struct.isSetTbl()) {
          oprot.writeFieldBegin(TBL_FIELD_DESC);
          oprot.writeString(struct.tbl);
          oprot.writeFieldEnd();
        }
      }
      if (struct.label != null) {
        if (struct.isSetLabel()) {
          oprot.writeFieldBegin(LABEL_FIELD_DESC);
          oprot.writeString(struct.label);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetMaxIntervalS()) {
        oprot.writeFieldBegin(MAX_INTERVAL_S_FIELD_DESC);
        oprot.writeI64(struct.max_interval_s);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMaxBatchRows()) {
        oprot.writeFieldBegin(MAX_BATCH_ROWS_FIELD_DESC);
        oprot.writeI64(struct.max_batch_rows);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMaxBatchSize()) {
        oprot.writeFieldBegin(MAX_BATCH_SIZE_FIELD_DESC);
        oprot.writeI64(struct.max_batch_size);
        oprot.writeFieldEnd();
      }
      if (struct.kafka_load_info != null) {
        if (struct.isSetKafkaLoadInfo()) {
          oprot.writeFieldBegin(KAFKA_LOAD_INFO_FIELD_DESC);
          struct.kafka_load_info.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.format != null) {
        if (struct.isSetFormat()) {
          oprot.writeFieldBegin(FORMAT_FIELD_DESC);
          oprot.writeI32(struct.format.getValue());
          oprot.writeFieldEnd();
        }
      }
      if (struct.pipeline_params != null) {
        if (struct.isSetPipelineParams()) {
          oprot.writeFieldBegin(PIPELINE_PARAMS_FIELD_DESC);
          struct.pipeline_params.write(oprot);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetIsMultiTable()) {
        oprot.writeFieldBegin(IS_MULTI_TABLE_FIELD_DESC);
        oprot.writeBool(struct.is_multi_table);
        oprot.writeFieldEnd();
      }
      if (struct.isSetMemtableOnSinkNode()) {
        oprot.writeFieldBegin(MEMTABLE_ON_SINK_NODE_FIELD_DESC);
        oprot.writeBool(struct.memtable_on_sink_node);
        oprot.writeFieldEnd();
      }
      if (struct.qualified_user != null) {
        if (struct.isSetQualifiedUser()) {
          oprot.writeFieldBegin(QUALIFIED_USER_FIELD_DESC);
          oprot.writeString(struct.qualified_user);
          oprot.writeFieldEnd();
        }
      }
      if (struct.cloud_cluster != null) {
        if (struct.isSetCloudCluster()) {
          oprot.writeFieldBegin(CLOUD_CLUSTER_FIELD_DESC);
          oprot.writeString(struct.cloud_cluster);
          oprot.writeFieldEnd();
        }
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TRoutineLoadTaskTupleScheme extends org.apache.thrift.scheme.TupleScheme<TRoutineLoadTask> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TRoutineLoadTask struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      oprot.writeI32(struct.type.getValue());
      oprot.writeI64(struct.job_id);
      struct.id.write(oprot);
      oprot.writeI64(struct.txn_id);
      oprot.writeI64(struct.auth_code);
      java.util.BitSet optionals = new java.util.BitSet();
      if (struct.isSetDb()) {
        optionals.set(0);
      }
      if (struct.isSetTbl()) {
        optionals.set(1);
      }
      if (struct.isSetLabel()) {
        optionals.set(2);
      }
      if (struct.isSetMaxIntervalS()) {
        optionals.set(3);
      }
      if (struct.isSetMaxBatchRows()) {
        optionals.set(4);
      }
      if (struct.isSetMaxBatchSize()) {
        optionals.set(5);
      }
      if (struct.isSetKafkaLoadInfo()) {
        optionals.set(6);
      }
      if (struct.isSetFormat()) {
        optionals.set(7);
      }
      if (struct.isSetPipelineParams()) {
        optionals.set(8);
      }
      if (struct.isSetIsMultiTable()) {
        optionals.set(9);
      }
      if (struct.isSetMemtableOnSinkNode()) {
        optionals.set(10);
      }
      if (struct.isSetQualifiedUser()) {
        optionals.set(11);
      }
      if (struct.isSetCloudCluster()) {
        optionals.set(12);
      }
      oprot.writeBitSet(optionals, 13);
      if (struct.isSetDb()) {
        oprot.writeString(struct.db);
      }
      if (struct.isSetTbl()) {
        oprot.writeString(struct.tbl);
      }
      if (struct.isSetLabel()) {
        oprot.writeString(struct.label);
      }
      if (struct.isSetMaxIntervalS()) {
        oprot.writeI64(struct.max_interval_s);
      }
      if (struct.isSetMaxBatchRows()) {
        oprot.writeI64(struct.max_batch_rows);
      }
      if (struct.isSetMaxBatchSize()) {
        oprot.writeI64(struct.max_batch_size);
      }
      if (struct.isSetKafkaLoadInfo()) {
        struct.kafka_load_info.write(oprot);
      }
      if (struct.isSetFormat()) {
        oprot.writeI32(struct.format.getValue());
      }
      if (struct.isSetPipelineParams()) {
        struct.pipeline_params.write(oprot);
      }
      if (struct.isSetIsMultiTable()) {
        oprot.writeBool(struct.is_multi_table);
      }
      if (struct.isSetMemtableOnSinkNode()) {
        oprot.writeBool(struct.memtable_on_sink_node);
      }
      if (struct.isSetQualifiedUser()) {
        oprot.writeString(struct.qualified_user);
      }
      if (struct.isSetCloudCluster()) {
        oprot.writeString(struct.cloud_cluster);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TRoutineLoadTask struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      struct.type = org.apache.doris.thrift.TLoadSourceType.findByValue(iprot.readI32());
      struct.setTypeIsSet(true);
      struct.job_id = iprot.readI64();
      struct.setJobIdIsSet(true);
      struct.id = new org.apache.doris.thrift.TUniqueId();
      struct.id.read(iprot);
      struct.setIdIsSet(true);
      struct.txn_id = iprot.readI64();
      struct.setTxnIdIsSet(true);
      struct.auth_code = iprot.readI64();
      struct.setAuthCodeIsSet(true);
      java.util.BitSet incoming = iprot.readBitSet(13);
      if (incoming.get(0)) {
        struct.db = iprot.readString();
        struct.setDbIsSet(true);
      }
      if (incoming.get(1)) {
        struct.tbl = iprot.readString();
        struct.setTblIsSet(true);
      }
      if (incoming.get(2)) {
        struct.label = iprot.readString();
        struct.setLabelIsSet(true);
      }
      if (incoming.get(3)) {
        struct.max_interval_s = iprot.readI64();
        struct.setMaxIntervalSIsSet(true);
      }
      if (incoming.get(4)) {
        struct.max_batch_rows = iprot.readI64();
        struct.setMaxBatchRowsIsSet(true);
      }
      if (incoming.get(5)) {
        struct.max_batch_size = iprot.readI64();
        struct.setMaxBatchSizeIsSet(true);
      }
      if (incoming.get(6)) {
        struct.kafka_load_info = new TKafkaLoadInfo();
        struct.kafka_load_info.read(iprot);
        struct.setKafkaLoadInfoIsSet(true);
      }
      if (incoming.get(7)) {
        struct.format = org.apache.doris.thrift.TFileFormatType.findByValue(iprot.readI32());
        struct.setFormatIsSet(true);
      }
      if (incoming.get(8)) {
        struct.pipeline_params = new org.apache.doris.thrift.TPipelineFragmentParams();
        struct.pipeline_params.read(iprot);
        struct.setPipelineParamsIsSet(true);
      }
      if (incoming.get(9)) {
        struct.is_multi_table = iprot.readBool();
        struct.setIsMultiTableIsSet(true);
      }
      if (incoming.get(10)) {
        struct.memtable_on_sink_node = iprot.readBool();
        struct.setMemtableOnSinkNodeIsSet(true);
      }
      if (incoming.get(11)) {
        struct.qualified_user = iprot.readString();
        struct.setQualifiedUserIsSet(true);
      }
      if (incoming.get(12)) {
        struct.cloud_cluster = iprot.readString();
        struct.setCloudClusterIsSet(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();
  }
}