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

  private static final org.apache.thrift.protocol.TField SESSION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("session_id", org.apache.thrift.protocol.TType.STRING, (short)1);
  private static final org.apache.thrift.protocol.TField ACCESS_KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("access_key", org.apache.thrift.protocol.TType.STRING, (short)2);
  private static final org.apache.thrift.protocol.TField SECRET_KEY_FIELD_DESC = new org.apache.thrift.protocol.TField("secret_key", org.apache.thrift.protocol.TType.STRING, (short)3);
  private static final org.apache.thrift.protocol.TField ENDPOINT_FIELD_DESC = new org.apache.thrift.protocol.TField("endpoint", org.apache.thrift.protocol.TType.STRING, (short)4);
  private static final org.apache.thrift.protocol.TField PROJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("project", org.apache.thrift.protocol.TType.STRING, (short)5);
  private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("table_name", org.apache.thrift.protocol.TType.STRING, (short)6);
  private static final org.apache.thrift.protocol.TField QUOTA_FIELD_DESC = new org.apache.thrift.protocol.TField("quota", org.apache.thrift.protocol.TType.STRING, (short)7);
  private static final org.apache.thrift.protocol.TField BLOCK_ID_START_FIELD_DESC = new org.apache.thrift.protocol.TField("block_id_start", org.apache.thrift.protocol.TType.I64, (short)8);
  private static final org.apache.thrift.protocol.TField BLOCK_ID_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("block_id_count", org.apache.thrift.protocol.TType.I64, (short)9);
  private static final org.apache.thrift.protocol.TField STATIC_PARTITION_SPEC_FIELD_DESC = new org.apache.thrift.protocol.TField("static_partition_spec", org.apache.thrift.protocol.TType.MAP, (short)10);
  private static final org.apache.thrift.protocol.TField CONNECT_TIMEOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("connect_timeout", org.apache.thrift.protocol.TType.I32, (short)11);
  private static final org.apache.thrift.protocol.TField READ_TIMEOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("read_timeout", org.apache.thrift.protocol.TType.I32, (short)12);
  private static final org.apache.thrift.protocol.TField RETRY_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("retry_count", org.apache.thrift.protocol.TType.I32, (short)13);
  private static final org.apache.thrift.protocol.TField PARTITION_COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("partition_columns", org.apache.thrift.protocol.TType.LIST, (short)14);
  private static final org.apache.thrift.protocol.TField WRITE_SESSION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("write_session_id", org.apache.thrift.protocol.TType.STRING, (short)15);
  private static final org.apache.thrift.protocol.TField PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("properties", org.apache.thrift.protocol.TType.MAP, (short)16);
  private static final org.apache.thrift.protocol.TField MAX_WRITE_BATCH_ROWS_FIELD_DESC = new org.apache.thrift.protocol.TField("max_write_batch_rows", org.apache.thrift.protocol.TType.I32, (short)17);
  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)18);

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

  public @org.apache.thrift.annotation.Nullable java.lang.String session_id; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String access_key; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String secret_key; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String endpoint; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String project; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String table_name; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String quota; // optional
  public long block_id_start; // optional
  public long block_id_count; // optional
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> static_partition_spec; // optional
  public int connect_timeout; // optional
  public int read_timeout; // optional
  public int retry_count; // optional
  public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partition_columns; // optional
  public @org.apache.thrift.annotation.Nullable java.lang.String write_session_id; // optional
  public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> properties; // optional
  public int max_write_batch_rows; // optional
  public long txn_id; // 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 {
    SESSION_ID((short)1, "session_id"),
    ACCESS_KEY((short)2, "access_key"),
    SECRET_KEY((short)3, "secret_key"),
    ENDPOINT((short)4, "endpoint"),
    PROJECT((short)5, "project"),
    TABLE_NAME((short)6, "table_name"),
    QUOTA((short)7, "quota"),
    BLOCK_ID_START((short)8, "block_id_start"),
    BLOCK_ID_COUNT((short)9, "block_id_count"),
    STATIC_PARTITION_SPEC((short)10, "static_partition_spec"),
    CONNECT_TIMEOUT((short)11, "connect_timeout"),
    READ_TIMEOUT((short)12, "read_timeout"),
    RETRY_COUNT((short)13, "retry_count"),
    PARTITION_COLUMNS((short)14, "partition_columns"),
    WRITE_SESSION_ID((short)15, "write_session_id"),
    PROPERTIES((short)16, "properties"),
    MAX_WRITE_BATCH_ROWS((short)17, "max_write_batch_rows"),
    TXN_ID((short)18, "txn_id");

    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: // SESSION_ID
          return SESSION_ID;
        case 2: // ACCESS_KEY
          return ACCESS_KEY;
        case 3: // SECRET_KEY
          return SECRET_KEY;
        case 4: // ENDPOINT
          return ENDPOINT;
        case 5: // PROJECT
          return PROJECT;
        case 6: // TABLE_NAME
          return TABLE_NAME;
        case 7: // QUOTA
          return QUOTA;
        case 8: // BLOCK_ID_START
          return BLOCK_ID_START;
        case 9: // BLOCK_ID_COUNT
          return BLOCK_ID_COUNT;
        case 10: // STATIC_PARTITION_SPEC
          return STATIC_PARTITION_SPEC;
        case 11: // CONNECT_TIMEOUT
          return CONNECT_TIMEOUT;
        case 12: // READ_TIMEOUT
          return READ_TIMEOUT;
        case 13: // RETRY_COUNT
          return RETRY_COUNT;
        case 14: // PARTITION_COLUMNS
          return PARTITION_COLUMNS;
        case 15: // WRITE_SESSION_ID
          return WRITE_SESSION_ID;
        case 16: // PROPERTIES
          return PROPERTIES;
        case 17: // MAX_WRITE_BATCH_ROWS
          return MAX_WRITE_BATCH_ROWS;
        case 18: // TXN_ID
          return TXN_ID;
        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 __BLOCK_ID_START_ISSET_ID = 0;
  private static final int __BLOCK_ID_COUNT_ISSET_ID = 1;
  private static final int __CONNECT_TIMEOUT_ISSET_ID = 2;
  private static final int __READ_TIMEOUT_ISSET_ID = 3;
  private static final int __RETRY_COUNT_ISSET_ID = 4;
  private static final int __MAX_WRITE_BATCH_ROWS_ISSET_ID = 5;
  private static final int __TXN_ID_ISSET_ID = 6;
  private byte __isset_bitfield = 0;
  private static final _Fields optionals[] = {_Fields.SESSION_ID,_Fields.ACCESS_KEY,_Fields.SECRET_KEY,_Fields.ENDPOINT,_Fields.PROJECT,_Fields.TABLE_NAME,_Fields.QUOTA,_Fields.BLOCK_ID_START,_Fields.BLOCK_ID_COUNT,_Fields.STATIC_PARTITION_SPEC,_Fields.CONNECT_TIMEOUT,_Fields.READ_TIMEOUT,_Fields.RETRY_COUNT,_Fields.PARTITION_COLUMNS,_Fields.WRITE_SESSION_ID,_Fields.PROPERTIES,_Fields.MAX_WRITE_BATCH_ROWS,_Fields.TXN_ID};
  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.SESSION_ID, new org.apache.thrift.meta_data.FieldMetaData("session_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ACCESS_KEY, new org.apache.thrift.meta_data.FieldMetaData("access_key", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.SECRET_KEY, new org.apache.thrift.meta_data.FieldMetaData("secret_key", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.ENDPOINT, new org.apache.thrift.meta_data.FieldMetaData("endpoint", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PROJECT, new org.apache.thrift.meta_data.FieldMetaData("project", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("table_name", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.QUOTA, new org.apache.thrift.meta_data.FieldMetaData("quota", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.BLOCK_ID_START, new org.apache.thrift.meta_data.FieldMetaData("block_id_start", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.BLOCK_ID_COUNT, new org.apache.thrift.meta_data.FieldMetaData("block_id_count", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    tmpMap.put(_Fields.STATIC_PARTITION_SPEC, new org.apache.thrift.meta_data.FieldMetaData("static_partition_spec", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.CONNECT_TIMEOUT, new org.apache.thrift.meta_data.FieldMetaData("connect_timeout", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.READ_TIMEOUT, new org.apache.thrift.meta_data.FieldMetaData("read_timeout", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.RETRY_COUNT, new org.apache.thrift.meta_data.FieldMetaData("retry_count", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.PARTITION_COLUMNS, new org.apache.thrift.meta_data.FieldMetaData("partition_columns", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.WRITE_SESSION_ID, new org.apache.thrift.meta_data.FieldMetaData("write_session_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
    tmpMap.put(_Fields.PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("properties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
    tmpMap.put(_Fields.MAX_WRITE_BATCH_ROWS, new org.apache.thrift.meta_data.FieldMetaData("max_write_batch_rows", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
    tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txn_id", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TMaxComputeTableSink.class, metaDataMap);
  }

  public TMaxComputeTableSink() {
  }

  /**
   * Performs a deep copy on <i>other</i>.
   */
  public TMaxComputeTableSink(TMaxComputeTableSink other) {
    __isset_bitfield = other.__isset_bitfield;
    if (other.isSetSessionId()) {
      this.session_id = other.session_id;
    }
    if (other.isSetAccessKey()) {
      this.access_key = other.access_key;
    }
    if (other.isSetSecretKey()) {
      this.secret_key = other.secret_key;
    }
    if (other.isSetEndpoint()) {
      this.endpoint = other.endpoint;
    }
    if (other.isSetProject()) {
      this.project = other.project;
    }
    if (other.isSetTableName()) {
      this.table_name = other.table_name;
    }
    if (other.isSetQuota()) {
      this.quota = other.quota;
    }
    this.block_id_start = other.block_id_start;
    this.block_id_count = other.block_id_count;
    if (other.isSetStaticPartitionSpec()) {
      java.util.Map<java.lang.String,java.lang.String> __this__static_partition_spec = new java.util.HashMap<java.lang.String,java.lang.String>(other.static_partition_spec);
      this.static_partition_spec = __this__static_partition_spec;
    }
    this.connect_timeout = other.connect_timeout;
    this.read_timeout = other.read_timeout;
    this.retry_count = other.retry_count;
    if (other.isSetPartitionColumns()) {
      java.util.List<java.lang.String> __this__partition_columns = new java.util.ArrayList<java.lang.String>(other.partition_columns);
      this.partition_columns = __this__partition_columns;
    }
    if (other.isSetWriteSessionId()) {
      this.write_session_id = other.write_session_id;
    }
    if (other.isSetProperties()) {
      java.util.Map<java.lang.String,java.lang.String> __this__properties = new java.util.HashMap<java.lang.String,java.lang.String>(other.properties);
      this.properties = __this__properties;
    }
    this.max_write_batch_rows = other.max_write_batch_rows;
    this.txn_id = other.txn_id;
  }

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

  @Override
  public void clear() {
    this.session_id = null;
    this.access_key = null;
    this.secret_key = null;
    this.endpoint = null;
    this.project = null;
    this.table_name = null;
    this.quota = null;
    setBlockIdStartIsSet(false);
    this.block_id_start = 0;
    setBlockIdCountIsSet(false);
    this.block_id_count = 0;
    this.static_partition_spec = null;
    setConnectTimeoutIsSet(false);
    this.connect_timeout = 0;
    setReadTimeoutIsSet(false);
    this.read_timeout = 0;
    setRetryCountIsSet(false);
    this.retry_count = 0;
    this.partition_columns = null;
    this.write_session_id = null;
    this.properties = null;
    setMaxWriteBatchRowsIsSet(false);
    this.max_write_batch_rows = 0;
    setTxnIdIsSet(false);
    this.txn_id = 0;
  }

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

  public TMaxComputeTableSink setSessionId(@org.apache.thrift.annotation.Nullable java.lang.String session_id) {
    this.session_id = session_id;
    return this;
  }

  public void unsetSessionId() {
    this.session_id = null;
  }

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

  public void setSessionIdIsSet(boolean value) {
    if (!value) {
      this.session_id = null;
    }
  }

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

  public TMaxComputeTableSink setAccessKey(@org.apache.thrift.annotation.Nullable java.lang.String access_key) {
    this.access_key = access_key;
    return this;
  }

  public void unsetAccessKey() {
    this.access_key = null;
  }

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

  public void setAccessKeyIsSet(boolean value) {
    if (!value) {
      this.access_key = null;
    }
  }

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

  public TMaxComputeTableSink setSecretKey(@org.apache.thrift.annotation.Nullable java.lang.String secret_key) {
    this.secret_key = secret_key;
    return this;
  }

  public void unsetSecretKey() {
    this.secret_key = null;
  }

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

  public void setSecretKeyIsSet(boolean value) {
    if (!value) {
      this.secret_key = null;
    }
  }

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

  public TMaxComputeTableSink setEndpoint(@org.apache.thrift.annotation.Nullable java.lang.String endpoint) {
    this.endpoint = endpoint;
    return this;
  }

  public void unsetEndpoint() {
    this.endpoint = null;
  }

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

  public void setEndpointIsSet(boolean value) {
    if (!value) {
      this.endpoint = null;
    }
  }

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

  public TMaxComputeTableSink setProject(@org.apache.thrift.annotation.Nullable java.lang.String project) {
    this.project = project;
    return this;
  }

  public void unsetProject() {
    this.project = null;
  }

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

  public void setProjectIsSet(boolean value) {
    if (!value) {
      this.project = null;
    }
  }

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

  public TMaxComputeTableSink setTableName(@org.apache.thrift.annotation.Nullable java.lang.String table_name) {
    this.table_name = table_name;
    return this;
  }

  public void unsetTableName() {
    this.table_name = null;
  }

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

  public void setTableNameIsSet(boolean value) {
    if (!value) {
      this.table_name = null;
    }
  }

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

  public TMaxComputeTableSink setQuota(@org.apache.thrift.annotation.Nullable java.lang.String quota) {
    this.quota = quota;
    return this;
  }

  public void unsetQuota() {
    this.quota = null;
  }

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

  public void setQuotaIsSet(boolean value) {
    if (!value) {
      this.quota = null;
    }
  }

  public long getBlockIdStart() {
    return this.block_id_start;
  }

  public TMaxComputeTableSink setBlockIdStart(long block_id_start) {
    this.block_id_start = block_id_start;
    setBlockIdStartIsSet(true);
    return this;
  }

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

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

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

  public long getBlockIdCount() {
    return this.block_id_count;
  }

  public TMaxComputeTableSink setBlockIdCount(long block_id_count) {
    this.block_id_count = block_id_count;
    setBlockIdCountIsSet(true);
    return this;
  }

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

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

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

  public int getStaticPartitionSpecSize() {
    return (this.static_partition_spec == null) ? 0 : this.static_partition_spec.size();
  }

  public void putToStaticPartitionSpec(java.lang.String key, java.lang.String val) {
    if (this.static_partition_spec == null) {
      this.static_partition_spec = new java.util.HashMap<java.lang.String,java.lang.String>();
    }
    this.static_partition_spec.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.String,java.lang.String> getStaticPartitionSpec() {
    return this.static_partition_spec;
  }

  public TMaxComputeTableSink setStaticPartitionSpec(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> static_partition_spec) {
    this.static_partition_spec = static_partition_spec;
    return this;
  }

  public void unsetStaticPartitionSpec() {
    this.static_partition_spec = null;
  }

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

  public void setStaticPartitionSpecIsSet(boolean value) {
    if (!value) {
      this.static_partition_spec = null;
    }
  }

  public int getConnectTimeout() {
    return this.connect_timeout;
  }

  public TMaxComputeTableSink setConnectTimeout(int connect_timeout) {
    this.connect_timeout = connect_timeout;
    setConnectTimeoutIsSet(true);
    return this;
  }

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

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

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

  public int getReadTimeout() {
    return this.read_timeout;
  }

  public TMaxComputeTableSink setReadTimeout(int read_timeout) {
    this.read_timeout = read_timeout;
    setReadTimeoutIsSet(true);
    return this;
  }

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

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

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

  public int getRetryCount() {
    return this.retry_count;
  }

  public TMaxComputeTableSink setRetryCount(int retry_count) {
    this.retry_count = retry_count;
    setRetryCountIsSet(true);
    return this;
  }

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

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

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

  public int getPartitionColumnsSize() {
    return (this.partition_columns == null) ? 0 : this.partition_columns.size();
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Iterator<java.lang.String> getPartitionColumnsIterator() {
    return (this.partition_columns == null) ? null : this.partition_columns.iterator();
  }

  public void addToPartitionColumns(java.lang.String elem) {
    if (this.partition_columns == null) {
      this.partition_columns = new java.util.ArrayList<java.lang.String>();
    }
    this.partition_columns.add(elem);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.List<java.lang.String> getPartitionColumns() {
    return this.partition_columns;
  }

  public TMaxComputeTableSink setPartitionColumns(@org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partition_columns) {
    this.partition_columns = partition_columns;
    return this;
  }

  public void unsetPartitionColumns() {
    this.partition_columns = null;
  }

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

  public void setPartitionColumnsIsSet(boolean value) {
    if (!value) {
      this.partition_columns = null;
    }
  }

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

  public TMaxComputeTableSink setWriteSessionId(@org.apache.thrift.annotation.Nullable java.lang.String write_session_id) {
    this.write_session_id = write_session_id;
    return this;
  }

  public void unsetWriteSessionId() {
    this.write_session_id = null;
  }

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

  public void setWriteSessionIdIsSet(boolean value) {
    if (!value) {
      this.write_session_id = null;
    }
  }

  public int getPropertiesSize() {
    return (this.properties == null) ? 0 : this.properties.size();
  }

  public void putToProperties(java.lang.String key, java.lang.String val) {
    if (this.properties == null) {
      this.properties = new java.util.HashMap<java.lang.String,java.lang.String>();
    }
    this.properties.put(key, val);
  }

  @org.apache.thrift.annotation.Nullable
  public java.util.Map<java.lang.String,java.lang.String> getProperties() {
    return this.properties;
  }

  public TMaxComputeTableSink setProperties(@org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> properties) {
    this.properties = properties;
    return this;
  }

  public void unsetProperties() {
    this.properties = null;
  }

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

  public void setPropertiesIsSet(boolean value) {
    if (!value) {
      this.properties = null;
    }
  }

  public int getMaxWriteBatchRows() {
    return this.max_write_batch_rows;
  }

  public TMaxComputeTableSink setMaxWriteBatchRows(int max_write_batch_rows) {
    this.max_write_batch_rows = max_write_batch_rows;
    setMaxWriteBatchRowsIsSet(true);
    return this;
  }

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

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

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

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

  public TMaxComputeTableSink 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 void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) {
    switch (field) {
    case SESSION_ID:
      if (value == null) {
        unsetSessionId();
      } else {
        setSessionId((java.lang.String)value);
      }
      break;

    case ACCESS_KEY:
      if (value == null) {
        unsetAccessKey();
      } else {
        setAccessKey((java.lang.String)value);
      }
      break;

    case SECRET_KEY:
      if (value == null) {
        unsetSecretKey();
      } else {
        setSecretKey((java.lang.String)value);
      }
      break;

    case ENDPOINT:
      if (value == null) {
        unsetEndpoint();
      } else {
        setEndpoint((java.lang.String)value);
      }
      break;

    case PROJECT:
      if (value == null) {
        unsetProject();
      } else {
        setProject((java.lang.String)value);
      }
      break;

    case TABLE_NAME:
      if (value == null) {
        unsetTableName();
      } else {
        setTableName((java.lang.String)value);
      }
      break;

    case QUOTA:
      if (value == null) {
        unsetQuota();
      } else {
        setQuota((java.lang.String)value);
      }
      break;

    case BLOCK_ID_START:
      if (value == null) {
        unsetBlockIdStart();
      } else {
        setBlockIdStart((java.lang.Long)value);
      }
      break;

    case BLOCK_ID_COUNT:
      if (value == null) {
        unsetBlockIdCount();
      } else {
        setBlockIdCount((java.lang.Long)value);
      }
      break;

    case STATIC_PARTITION_SPEC:
      if (value == null) {
        unsetStaticPartitionSpec();
      } else {
        setStaticPartitionSpec((java.util.Map<java.lang.String,java.lang.String>)value);
      }
      break;

    case CONNECT_TIMEOUT:
      if (value == null) {
        unsetConnectTimeout();
      } else {
        setConnectTimeout((java.lang.Integer)value);
      }
      break;

    case READ_TIMEOUT:
      if (value == null) {
        unsetReadTimeout();
      } else {
        setReadTimeout((java.lang.Integer)value);
      }
      break;

    case RETRY_COUNT:
      if (value == null) {
        unsetRetryCount();
      } else {
        setRetryCount((java.lang.Integer)value);
      }
      break;

    case PARTITION_COLUMNS:
      if (value == null) {
        unsetPartitionColumns();
      } else {
        setPartitionColumns((java.util.List<java.lang.String>)value);
      }
      break;

    case WRITE_SESSION_ID:
      if (value == null) {
        unsetWriteSessionId();
      } else {
        setWriteSessionId((java.lang.String)value);
      }
      break;

    case PROPERTIES:
      if (value == null) {
        unsetProperties();
      } else {
        setProperties((java.util.Map<java.lang.String,java.lang.String>)value);
      }
      break;

    case MAX_WRITE_BATCH_ROWS:
      if (value == null) {
        unsetMaxWriteBatchRows();
      } else {
        setMaxWriteBatchRows((java.lang.Integer)value);
      }
      break;

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

    }
  }

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

    case ACCESS_KEY:
      return getAccessKey();

    case SECRET_KEY:
      return getSecretKey();

    case ENDPOINT:
      return getEndpoint();

    case PROJECT:
      return getProject();

    case TABLE_NAME:
      return getTableName();

    case QUOTA:
      return getQuota();

    case BLOCK_ID_START:
      return getBlockIdStart();

    case BLOCK_ID_COUNT:
      return getBlockIdCount();

    case STATIC_PARTITION_SPEC:
      return getStaticPartitionSpec();

    case CONNECT_TIMEOUT:
      return getConnectTimeout();

    case READ_TIMEOUT:
      return getReadTimeout();

    case RETRY_COUNT:
      return getRetryCount();

    case PARTITION_COLUMNS:
      return getPartitionColumns();

    case WRITE_SESSION_ID:
      return getWriteSessionId();

    case PROPERTIES:
      return getProperties();

    case MAX_WRITE_BATCH_ROWS:
      return getMaxWriteBatchRows();

    case TXN_ID:
      return getTxnId();

    }
    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 SESSION_ID:
      return isSetSessionId();
    case ACCESS_KEY:
      return isSetAccessKey();
    case SECRET_KEY:
      return isSetSecretKey();
    case ENDPOINT:
      return isSetEndpoint();
    case PROJECT:
      return isSetProject();
    case TABLE_NAME:
      return isSetTableName();
    case QUOTA:
      return isSetQuota();
    case BLOCK_ID_START:
      return isSetBlockIdStart();
    case BLOCK_ID_COUNT:
      return isSetBlockIdCount();
    case STATIC_PARTITION_SPEC:
      return isSetStaticPartitionSpec();
    case CONNECT_TIMEOUT:
      return isSetConnectTimeout();
    case READ_TIMEOUT:
      return isSetReadTimeout();
    case RETRY_COUNT:
      return isSetRetryCount();
    case PARTITION_COLUMNS:
      return isSetPartitionColumns();
    case WRITE_SESSION_ID:
      return isSetWriteSessionId();
    case PROPERTIES:
      return isSetProperties();
    case MAX_WRITE_BATCH_ROWS:
      return isSetMaxWriteBatchRows();
    case TXN_ID:
      return isSetTxnId();
    }
    throw new java.lang.IllegalStateException();
  }

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

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

    boolean this_present_session_id = true && this.isSetSessionId();
    boolean that_present_session_id = true && that.isSetSessionId();
    if (this_present_session_id || that_present_session_id) {
      if (!(this_present_session_id && that_present_session_id))
        return false;
      if (!this.session_id.equals(that.session_id))
        return false;
    }

    boolean this_present_access_key = true && this.isSetAccessKey();
    boolean that_present_access_key = true && that.isSetAccessKey();
    if (this_present_access_key || that_present_access_key) {
      if (!(this_present_access_key && that_present_access_key))
        return false;
      if (!this.access_key.equals(that.access_key))
        return false;
    }

    boolean this_present_secret_key = true && this.isSetSecretKey();
    boolean that_present_secret_key = true && that.isSetSecretKey();
    if (this_present_secret_key || that_present_secret_key) {
      if (!(this_present_secret_key && that_present_secret_key))
        return false;
      if (!this.secret_key.equals(that.secret_key))
        return false;
    }

    boolean this_present_endpoint = true && this.isSetEndpoint();
    boolean that_present_endpoint = true && that.isSetEndpoint();
    if (this_present_endpoint || that_present_endpoint) {
      if (!(this_present_endpoint && that_present_endpoint))
        return false;
      if (!this.endpoint.equals(that.endpoint))
        return false;
    }

    boolean this_present_project = true && this.isSetProject();
    boolean that_present_project = true && that.isSetProject();
    if (this_present_project || that_present_project) {
      if (!(this_present_project && that_present_project))
        return false;
      if (!this.project.equals(that.project))
        return false;
    }

    boolean this_present_table_name = true && this.isSetTableName();
    boolean that_present_table_name = true && that.isSetTableName();
    if (this_present_table_name || that_present_table_name) {
      if (!(this_present_table_name && that_present_table_name))
        return false;
      if (!this.table_name.equals(that.table_name))
        return false;
    }

    boolean this_present_quota = true && this.isSetQuota();
    boolean that_present_quota = true && that.isSetQuota();
    if (this_present_quota || that_present_quota) {
      if (!(this_present_quota && that_present_quota))
        return false;
      if (!this.quota.equals(that.quota))
        return false;
    }

    boolean this_present_block_id_start = true && this.isSetBlockIdStart();
    boolean that_present_block_id_start = true && that.isSetBlockIdStart();
    if (this_present_block_id_start || that_present_block_id_start) {
      if (!(this_present_block_id_start && that_present_block_id_start))
        return false;
      if (this.block_id_start != that.block_id_start)
        return false;
    }

    boolean this_present_block_id_count = true && this.isSetBlockIdCount();
    boolean that_present_block_id_count = true && that.isSetBlockIdCount();
    if (this_present_block_id_count || that_present_block_id_count) {
      if (!(this_present_block_id_count && that_present_block_id_count))
        return false;
      if (this.block_id_count != that.block_id_count)
        return false;
    }

    boolean this_present_static_partition_spec = true && this.isSetStaticPartitionSpec();
    boolean that_present_static_partition_spec = true && that.isSetStaticPartitionSpec();
    if (this_present_static_partition_spec || that_present_static_partition_spec) {
      if (!(this_present_static_partition_spec && that_present_static_partition_spec))
        return false;
      if (!this.static_partition_spec.equals(that.static_partition_spec))
        return false;
    }

    boolean this_present_connect_timeout = true && this.isSetConnectTimeout();
    boolean that_present_connect_timeout = true && that.isSetConnectTimeout();
    if (this_present_connect_timeout || that_present_connect_timeout) {
      if (!(this_present_connect_timeout && that_present_connect_timeout))
        return false;
      if (this.connect_timeout != that.connect_timeout)
        return false;
    }

    boolean this_present_read_timeout = true && this.isSetReadTimeout();
    boolean that_present_read_timeout = true && that.isSetReadTimeout();
    if (this_present_read_timeout || that_present_read_timeout) {
      if (!(this_present_read_timeout && that_present_read_timeout))
        return false;
      if (this.read_timeout != that.read_timeout)
        return false;
    }

    boolean this_present_retry_count = true && this.isSetRetryCount();
    boolean that_present_retry_count = true && that.isSetRetryCount();
    if (this_present_retry_count || that_present_retry_count) {
      if (!(this_present_retry_count && that_present_retry_count))
        return false;
      if (this.retry_count != that.retry_count)
        return false;
    }

    boolean this_present_partition_columns = true && this.isSetPartitionColumns();
    boolean that_present_partition_columns = true && that.isSetPartitionColumns();
    if (this_present_partition_columns || that_present_partition_columns) {
      if (!(this_present_partition_columns && that_present_partition_columns))
        return false;
      if (!this.partition_columns.equals(that.partition_columns))
        return false;
    }

    boolean this_present_write_session_id = true && this.isSetWriteSessionId();
    boolean that_present_write_session_id = true && that.isSetWriteSessionId();
    if (this_present_write_session_id || that_present_write_session_id) {
      if (!(this_present_write_session_id && that_present_write_session_id))
        return false;
      if (!this.write_session_id.equals(that.write_session_id))
        return false;
    }

    boolean this_present_properties = true && this.isSetProperties();
    boolean that_present_properties = true && that.isSetProperties();
    if (this_present_properties || that_present_properties) {
      if (!(this_present_properties && that_present_properties))
        return false;
      if (!this.properties.equals(that.properties))
        return false;
    }

    boolean this_present_max_write_batch_rows = true && this.isSetMaxWriteBatchRows();
    boolean that_present_max_write_batch_rows = true && that.isSetMaxWriteBatchRows();
    if (this_present_max_write_batch_rows || that_present_max_write_batch_rows) {
      if (!(this_present_max_write_batch_rows && that_present_max_write_batch_rows))
        return false;
      if (this.max_write_batch_rows != that.max_write_batch_rows)
        return false;
    }

    boolean this_present_txn_id = true && this.isSetTxnId();
    boolean that_present_txn_id = true && that.isSetTxnId();
    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;
    }

    return true;
  }

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

    hashCode = hashCode * 8191 + ((isSetSessionId()) ? 131071 : 524287);
    if (isSetSessionId())
      hashCode = hashCode * 8191 + session_id.hashCode();

    hashCode = hashCode * 8191 + ((isSetAccessKey()) ? 131071 : 524287);
    if (isSetAccessKey())
      hashCode = hashCode * 8191 + access_key.hashCode();

    hashCode = hashCode * 8191 + ((isSetSecretKey()) ? 131071 : 524287);
    if (isSetSecretKey())
      hashCode = hashCode * 8191 + secret_key.hashCode();

    hashCode = hashCode * 8191 + ((isSetEndpoint()) ? 131071 : 524287);
    if (isSetEndpoint())
      hashCode = hashCode * 8191 + endpoint.hashCode();

    hashCode = hashCode * 8191 + ((isSetProject()) ? 131071 : 524287);
    if (isSetProject())
      hashCode = hashCode * 8191 + project.hashCode();

    hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
    if (isSetTableName())
      hashCode = hashCode * 8191 + table_name.hashCode();

    hashCode = hashCode * 8191 + ((isSetQuota()) ? 131071 : 524287);
    if (isSetQuota())
      hashCode = hashCode * 8191 + quota.hashCode();

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

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

    hashCode = hashCode * 8191 + ((isSetStaticPartitionSpec()) ? 131071 : 524287);
    if (isSetStaticPartitionSpec())
      hashCode = hashCode * 8191 + static_partition_spec.hashCode();

    hashCode = hashCode * 8191 + ((isSetConnectTimeout()) ? 131071 : 524287);
    if (isSetConnectTimeout())
      hashCode = hashCode * 8191 + connect_timeout;

    hashCode = hashCode * 8191 + ((isSetReadTimeout()) ? 131071 : 524287);
    if (isSetReadTimeout())
      hashCode = hashCode * 8191 + read_timeout;

    hashCode = hashCode * 8191 + ((isSetRetryCount()) ? 131071 : 524287);
    if (isSetRetryCount())
      hashCode = hashCode * 8191 + retry_count;

    hashCode = hashCode * 8191 + ((isSetPartitionColumns()) ? 131071 : 524287);
    if (isSetPartitionColumns())
      hashCode = hashCode * 8191 + partition_columns.hashCode();

    hashCode = hashCode * 8191 + ((isSetWriteSessionId()) ? 131071 : 524287);
    if (isSetWriteSessionId())
      hashCode = hashCode * 8191 + write_session_id.hashCode();

    hashCode = hashCode * 8191 + ((isSetProperties()) ? 131071 : 524287);
    if (isSetProperties())
      hashCode = hashCode * 8191 + properties.hashCode();

    hashCode = hashCode * 8191 + ((isSetMaxWriteBatchRows()) ? 131071 : 524287);
    if (isSetMaxWriteBatchRows())
      hashCode = hashCode * 8191 + max_write_batch_rows;

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

    return hashCode;
  }

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

    int lastComparison = 0;

    lastComparison = java.lang.Boolean.compare(isSetSessionId(), other.isSetSessionId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSessionId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.session_id, other.session_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetAccessKey(), other.isSetAccessKey());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetAccessKey()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.access_key, other.access_key);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetSecretKey(), other.isSetSecretKey());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetSecretKey()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.secret_key, other.secret_key);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetEndpoint(), other.isSetEndpoint());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetEndpoint()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.endpoint, other.endpoint);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetProject(), other.isSetProject());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetProject()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.project, other.project);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetTableName(), other.isSetTableName());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetTableName()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.table_name, other.table_name);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetQuota(), other.isSetQuota());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetQuota()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.quota, other.quota);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBlockIdStart(), other.isSetBlockIdStart());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBlockIdStart()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.block_id_start, other.block_id_start);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetBlockIdCount(), other.isSetBlockIdCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetBlockIdCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.block_id_count, other.block_id_count);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetStaticPartitionSpec(), other.isSetStaticPartitionSpec());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetStaticPartitionSpec()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.static_partition_spec, other.static_partition_spec);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetConnectTimeout(), other.isSetConnectTimeout());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetConnectTimeout()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.connect_timeout, other.connect_timeout);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetReadTimeout(), other.isSetReadTimeout());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetReadTimeout()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.read_timeout, other.read_timeout);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetRetryCount(), other.isSetRetryCount());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetRetryCount()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.retry_count, other.retry_count);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetPartitionColumns(), other.isSetPartitionColumns());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetPartitionColumns()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partition_columns, other.partition_columns);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetWriteSessionId(), other.isSetWriteSessionId());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetWriteSessionId()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.write_session_id, other.write_session_id);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetProperties(), other.isSetProperties());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetProperties()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.properties, other.properties);
      if (lastComparison != 0) {
        return lastComparison;
      }
    }
    lastComparison = java.lang.Boolean.compare(isSetMaxWriteBatchRows(), other.isSetMaxWriteBatchRows());
    if (lastComparison != 0) {
      return lastComparison;
    }
    if (isSetMaxWriteBatchRows()) {
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.max_write_batch_rows, other.max_write_batch_rows);
      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;
      }
    }
    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("TMaxComputeTableSink(");
    boolean first = true;

    if (isSetSessionId()) {
      sb.append("session_id:");
      if (this.session_id == null) {
        sb.append("null");
      } else {
        sb.append(this.session_id);
      }
      first = false;
    }
    if (isSetAccessKey()) {
      if (!first) sb.append(", ");
      sb.append("access_key:");
      if (this.access_key == null) {
        sb.append("null");
      } else {
        sb.append(this.access_key);
      }
      first = false;
    }
    if (isSetSecretKey()) {
      if (!first) sb.append(", ");
      sb.append("secret_key:");
      if (this.secret_key == null) {
        sb.append("null");
      } else {
        sb.append(this.secret_key);
      }
      first = false;
    }
    if (isSetEndpoint()) {
      if (!first) sb.append(", ");
      sb.append("endpoint:");
      if (this.endpoint == null) {
        sb.append("null");
      } else {
        sb.append(this.endpoint);
      }
      first = false;
    }
    if (isSetProject()) {
      if (!first) sb.append(", ");
      sb.append("project:");
      if (this.project == null) {
        sb.append("null");
      } else {
        sb.append(this.project);
      }
      first = false;
    }
    if (isSetTableName()) {
      if (!first) sb.append(", ");
      sb.append("table_name:");
      if (this.table_name == null) {
        sb.append("null");
      } else {
        sb.append(this.table_name);
      }
      first = false;
    }
    if (isSetQuota()) {
      if (!first) sb.append(", ");
      sb.append("quota:");
      if (this.quota == null) {
        sb.append("null");
      } else {
        sb.append(this.quota);
      }
      first = false;
    }
    if (isSetBlockIdStart()) {
      if (!first) sb.append(", ");
      sb.append("block_id_start:");
      sb.append(this.block_id_start);
      first = false;
    }
    if (isSetBlockIdCount()) {
      if (!first) sb.append(", ");
      sb.append("block_id_count:");
      sb.append(this.block_id_count);
      first = false;
    }
    if (isSetStaticPartitionSpec()) {
      if (!first) sb.append(", ");
      sb.append("static_partition_spec:");
      if (this.static_partition_spec == null) {
        sb.append("null");
      } else {
        sb.append(this.static_partition_spec);
      }
      first = false;
    }
    if (isSetConnectTimeout()) {
      if (!first) sb.append(", ");
      sb.append("connect_timeout:");
      sb.append(this.connect_timeout);
      first = false;
    }
    if (isSetReadTimeout()) {
      if (!first) sb.append(", ");
      sb.append("read_timeout:");
      sb.append(this.read_timeout);
      first = false;
    }
    if (isSetRetryCount()) {
      if (!first) sb.append(", ");
      sb.append("retry_count:");
      sb.append(this.retry_count);
      first = false;
    }
    if (isSetPartitionColumns()) {
      if (!first) sb.append(", ");
      sb.append("partition_columns:");
      if (this.partition_columns == null) {
        sb.append("null");
      } else {
        sb.append(this.partition_columns);
      }
      first = false;
    }
    if (isSetWriteSessionId()) {
      if (!first) sb.append(", ");
      sb.append("write_session_id:");
      if (this.write_session_id == null) {
        sb.append("null");
      } else {
        sb.append(this.write_session_id);
      }
      first = false;
    }
    if (isSetProperties()) {
      if (!first) sb.append(", ");
      sb.append("properties:");
      if (this.properties == null) {
        sb.append("null");
      } else {
        sb.append(this.properties);
      }
      first = false;
    }
    if (isSetMaxWriteBatchRows()) {
      if (!first) sb.append(", ");
      sb.append("max_write_batch_rows:");
      sb.append(this.max_write_batch_rows);
      first = false;
    }
    if (isSetTxnId()) {
      if (!first) sb.append(", ");
      sb.append("txn_id:");
      sb.append(this.txn_id);
      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 TMaxComputeTableSinkStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
    public TMaxComputeTableSinkStandardScheme getScheme() {
      return new TMaxComputeTableSinkStandardScheme();
    }
  }

  private static class TMaxComputeTableSinkStandardScheme extends org.apache.thrift.scheme.StandardScheme<TMaxComputeTableSink> {

    public void read(org.apache.thrift.protocol.TProtocol iprot, TMaxComputeTableSink 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: // SESSION_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.session_id = iprot.readString();
              struct.setSessionIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 2: // ACCESS_KEY
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.access_key = iprot.readString();
              struct.setAccessKeyIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 3: // SECRET_KEY
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.secret_key = iprot.readString();
              struct.setSecretKeyIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 4: // ENDPOINT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.endpoint = iprot.readString();
              struct.setEndpointIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 5: // PROJECT
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.project = iprot.readString();
              struct.setProjectIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 6: // TABLE_NAME
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.table_name = iprot.readString();
              struct.setTableNameIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 7: // QUOTA
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.quota = iprot.readString();
              struct.setQuotaIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 8: // BLOCK_ID_START
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.block_id_start = iprot.readI64();
              struct.setBlockIdStartIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 9: // BLOCK_ID_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
              struct.block_id_count = iprot.readI64();
              struct.setBlockIdCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 10: // STATIC_PARTITION_SPEC
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map494 = iprot.readMapBegin();
                struct.static_partition_spec = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map494.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key495;
                @org.apache.thrift.annotation.Nullable java.lang.String _val496;
                for (int _i497 = 0; _i497 < _map494.size; ++_i497)
                {
                  _key495 = iprot.readString();
                  _val496 = iprot.readString();
                  struct.static_partition_spec.put(_key495, _val496);
                }
                iprot.readMapEnd();
              }
              struct.setStaticPartitionSpecIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 11: // CONNECT_TIMEOUT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.connect_timeout = iprot.readI32();
              struct.setConnectTimeoutIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 12: // READ_TIMEOUT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.read_timeout = iprot.readI32();
              struct.setReadTimeoutIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 13: // RETRY_COUNT
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.retry_count = iprot.readI32();
              struct.setRetryCountIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 14: // PARTITION_COLUMNS
            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
              {
                org.apache.thrift.protocol.TList _list498 = iprot.readListBegin();
                struct.partition_columns = new java.util.ArrayList<java.lang.String>(_list498.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _elem499;
                for (int _i500 = 0; _i500 < _list498.size; ++_i500)
                {
                  _elem499 = iprot.readString();
                  struct.partition_columns.add(_elem499);
                }
                iprot.readListEnd();
              }
              struct.setPartitionColumnsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 15: // WRITE_SESSION_ID
            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
              struct.write_session_id = iprot.readString();
              struct.setWriteSessionIdIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 16: // PROPERTIES
            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
              {
                org.apache.thrift.protocol.TMap _map501 = iprot.readMapBegin();
                struct.properties = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map501.size);
                @org.apache.thrift.annotation.Nullable java.lang.String _key502;
                @org.apache.thrift.annotation.Nullable java.lang.String _val503;
                for (int _i504 = 0; _i504 < _map501.size; ++_i504)
                {
                  _key502 = iprot.readString();
                  _val503 = iprot.readString();
                  struct.properties.put(_key502, _val503);
                }
                iprot.readMapEnd();
              }
              struct.setPropertiesIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 17: // MAX_WRITE_BATCH_ROWS
            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
              struct.max_write_batch_rows = iprot.readI32();
              struct.setMaxWriteBatchRowsIsSet(true);
            } else { 
              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
            }
            break;
          case 18: // 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;
          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, TMaxComputeTableSink struct) throws org.apache.thrift.TException {
      struct.validate();

      oprot.writeStructBegin(STRUCT_DESC);
      if (struct.session_id != null) {
        if (struct.isSetSessionId()) {
          oprot.writeFieldBegin(SESSION_ID_FIELD_DESC);
          oprot.writeString(struct.session_id);
          oprot.writeFieldEnd();
        }
      }
      if (struct.access_key != null) {
        if (struct.isSetAccessKey()) {
          oprot.writeFieldBegin(ACCESS_KEY_FIELD_DESC);
          oprot.writeString(struct.access_key);
          oprot.writeFieldEnd();
        }
      }
      if (struct.secret_key != null) {
        if (struct.isSetSecretKey()) {
          oprot.writeFieldBegin(SECRET_KEY_FIELD_DESC);
          oprot.writeString(struct.secret_key);
          oprot.writeFieldEnd();
        }
      }
      if (struct.endpoint != null) {
        if (struct.isSetEndpoint()) {
          oprot.writeFieldBegin(ENDPOINT_FIELD_DESC);
          oprot.writeString(struct.endpoint);
          oprot.writeFieldEnd();
        }
      }
      if (struct.project != null) {
        if (struct.isSetProject()) {
          oprot.writeFieldBegin(PROJECT_FIELD_DESC);
          oprot.writeString(struct.project);
          oprot.writeFieldEnd();
        }
      }
      if (struct.table_name != null) {
        if (struct.isSetTableName()) {
          oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
          oprot.writeString(struct.table_name);
          oprot.writeFieldEnd();
        }
      }
      if (struct.quota != null) {
        if (struct.isSetQuota()) {
          oprot.writeFieldBegin(QUOTA_FIELD_DESC);
          oprot.writeString(struct.quota);
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetBlockIdStart()) {
        oprot.writeFieldBegin(BLOCK_ID_START_FIELD_DESC);
        oprot.writeI64(struct.block_id_start);
        oprot.writeFieldEnd();
      }
      if (struct.isSetBlockIdCount()) {
        oprot.writeFieldBegin(BLOCK_ID_COUNT_FIELD_DESC);
        oprot.writeI64(struct.block_id_count);
        oprot.writeFieldEnd();
      }
      if (struct.static_partition_spec != null) {
        if (struct.isSetStaticPartitionSpec()) {
          oprot.writeFieldBegin(STATIC_PARTITION_SPEC_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.static_partition_spec.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter505 : struct.static_partition_spec.entrySet())
            {
              oprot.writeString(_iter505.getKey());
              oprot.writeString(_iter505.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetConnectTimeout()) {
        oprot.writeFieldBegin(CONNECT_TIMEOUT_FIELD_DESC);
        oprot.writeI32(struct.connect_timeout);
        oprot.writeFieldEnd();
      }
      if (struct.isSetReadTimeout()) {
        oprot.writeFieldBegin(READ_TIMEOUT_FIELD_DESC);
        oprot.writeI32(struct.read_timeout);
        oprot.writeFieldEnd();
      }
      if (struct.isSetRetryCount()) {
        oprot.writeFieldBegin(RETRY_COUNT_FIELD_DESC);
        oprot.writeI32(struct.retry_count);
        oprot.writeFieldEnd();
      }
      if (struct.partition_columns != null) {
        if (struct.isSetPartitionColumns()) {
          oprot.writeFieldBegin(PARTITION_COLUMNS_FIELD_DESC);
          {
            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.partition_columns.size()));
            for (java.lang.String _iter506 : struct.partition_columns)
            {
              oprot.writeString(_iter506);
            }
            oprot.writeListEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.write_session_id != null) {
        if (struct.isSetWriteSessionId()) {
          oprot.writeFieldBegin(WRITE_SESSION_ID_FIELD_DESC);
          oprot.writeString(struct.write_session_id);
          oprot.writeFieldEnd();
        }
      }
      if (struct.properties != null) {
        if (struct.isSetProperties()) {
          oprot.writeFieldBegin(PROPERTIES_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.properties.size()));
            for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter507 : struct.properties.entrySet())
            {
              oprot.writeString(_iter507.getKey());
              oprot.writeString(_iter507.getValue());
            }
            oprot.writeMapEnd();
          }
          oprot.writeFieldEnd();
        }
      }
      if (struct.isSetMaxWriteBatchRows()) {
        oprot.writeFieldBegin(MAX_WRITE_BATCH_ROWS_FIELD_DESC);
        oprot.writeI32(struct.max_write_batch_rows);
        oprot.writeFieldEnd();
      }
      if (struct.isSetTxnId()) {
        oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
        oprot.writeI64(struct.txn_id);
        oprot.writeFieldEnd();
      }
      oprot.writeFieldStop();
      oprot.writeStructEnd();
    }

  }

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

  private static class TMaxComputeTableSinkTupleScheme extends org.apache.thrift.scheme.TupleScheme<TMaxComputeTableSink> {

    @Override
    public void write(org.apache.thrift.protocol.TProtocol prot, TMaxComputeTableSink 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.isSetSessionId()) {
        optionals.set(0);
      }
      if (struct.isSetAccessKey()) {
        optionals.set(1);
      }
      if (struct.isSetSecretKey()) {
        optionals.set(2);
      }
      if (struct.isSetEndpoint()) {
        optionals.set(3);
      }
      if (struct.isSetProject()) {
        optionals.set(4);
      }
      if (struct.isSetTableName()) {
        optionals.set(5);
      }
      if (struct.isSetQuota()) {
        optionals.set(6);
      }
      if (struct.isSetBlockIdStart()) {
        optionals.set(7);
      }
      if (struct.isSetBlockIdCount()) {
        optionals.set(8);
      }
      if (struct.isSetStaticPartitionSpec()) {
        optionals.set(9);
      }
      if (struct.isSetConnectTimeout()) {
        optionals.set(10);
      }
      if (struct.isSetReadTimeout()) {
        optionals.set(11);
      }
      if (struct.isSetRetryCount()) {
        optionals.set(12);
      }
      if (struct.isSetPartitionColumns()) {
        optionals.set(13);
      }
      if (struct.isSetWriteSessionId()) {
        optionals.set(14);
      }
      if (struct.isSetProperties()) {
        optionals.set(15);
      }
      if (struct.isSetMaxWriteBatchRows()) {
        optionals.set(16);
      }
      if (struct.isSetTxnId()) {
        optionals.set(17);
      }
      oprot.writeBitSet(optionals, 18);
      if (struct.isSetSessionId()) {
        oprot.writeString(struct.session_id);
      }
      if (struct.isSetAccessKey()) {
        oprot.writeString(struct.access_key);
      }
      if (struct.isSetSecretKey()) {
        oprot.writeString(struct.secret_key);
      }
      if (struct.isSetEndpoint()) {
        oprot.writeString(struct.endpoint);
      }
      if (struct.isSetProject()) {
        oprot.writeString(struct.project);
      }
      if (struct.isSetTableName()) {
        oprot.writeString(struct.table_name);
      }
      if (struct.isSetQuota()) {
        oprot.writeString(struct.quota);
      }
      if (struct.isSetBlockIdStart()) {
        oprot.writeI64(struct.block_id_start);
      }
      if (struct.isSetBlockIdCount()) {
        oprot.writeI64(struct.block_id_count);
      }
      if (struct.isSetStaticPartitionSpec()) {
        {
          oprot.writeI32(struct.static_partition_spec.size());
          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter508 : struct.static_partition_spec.entrySet())
          {
            oprot.writeString(_iter508.getKey());
            oprot.writeString(_iter508.getValue());
          }
        }
      }
      if (struct.isSetConnectTimeout()) {
        oprot.writeI32(struct.connect_timeout);
      }
      if (struct.isSetReadTimeout()) {
        oprot.writeI32(struct.read_timeout);
      }
      if (struct.isSetRetryCount()) {
        oprot.writeI32(struct.retry_count);
      }
      if (struct.isSetPartitionColumns()) {
        {
          oprot.writeI32(struct.partition_columns.size());
          for (java.lang.String _iter509 : struct.partition_columns)
          {
            oprot.writeString(_iter509);
          }
        }
      }
      if (struct.isSetWriteSessionId()) {
        oprot.writeString(struct.write_session_id);
      }
      if (struct.isSetProperties()) {
        {
          oprot.writeI32(struct.properties.size());
          for (java.util.Map.Entry<java.lang.String, java.lang.String> _iter510 : struct.properties.entrySet())
          {
            oprot.writeString(_iter510.getKey());
            oprot.writeString(_iter510.getValue());
          }
        }
      }
      if (struct.isSetMaxWriteBatchRows()) {
        oprot.writeI32(struct.max_write_batch_rows);
      }
      if (struct.isSetTxnId()) {
        oprot.writeI64(struct.txn_id);
      }
    }

    @Override
    public void read(org.apache.thrift.protocol.TProtocol prot, TMaxComputeTableSink struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(18);
      if (incoming.get(0)) {
        struct.session_id = iprot.readString();
        struct.setSessionIdIsSet(true);
      }
      if (incoming.get(1)) {
        struct.access_key = iprot.readString();
        struct.setAccessKeyIsSet(true);
      }
      if (incoming.get(2)) {
        struct.secret_key = iprot.readString();
        struct.setSecretKeyIsSet(true);
      }
      if (incoming.get(3)) {
        struct.endpoint = iprot.readString();
        struct.setEndpointIsSet(true);
      }
      if (incoming.get(4)) {
        struct.project = iprot.readString();
        struct.setProjectIsSet(true);
      }
      if (incoming.get(5)) {
        struct.table_name = iprot.readString();
        struct.setTableNameIsSet(true);
      }
      if (incoming.get(6)) {
        struct.quota = iprot.readString();
        struct.setQuotaIsSet(true);
      }
      if (incoming.get(7)) {
        struct.block_id_start = iprot.readI64();
        struct.setBlockIdStartIsSet(true);
      }
      if (incoming.get(8)) {
        struct.block_id_count = iprot.readI64();
        struct.setBlockIdCountIsSet(true);
      }
      if (incoming.get(9)) {
        {
          org.apache.thrift.protocol.TMap _map511 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
          struct.static_partition_spec = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map511.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _key512;
          @org.apache.thrift.annotation.Nullable java.lang.String _val513;
          for (int _i514 = 0; _i514 < _map511.size; ++_i514)
          {
            _key512 = iprot.readString();
            _val513 = iprot.readString();
            struct.static_partition_spec.put(_key512, _val513);
          }
        }
        struct.setStaticPartitionSpecIsSet(true);
      }
      if (incoming.get(10)) {
        struct.connect_timeout = iprot.readI32();
        struct.setConnectTimeoutIsSet(true);
      }
      if (incoming.get(11)) {
        struct.read_timeout = iprot.readI32();
        struct.setReadTimeoutIsSet(true);
      }
      if (incoming.get(12)) {
        struct.retry_count = iprot.readI32();
        struct.setRetryCountIsSet(true);
      }
      if (incoming.get(13)) {
        {
          org.apache.thrift.protocol.TList _list515 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
          struct.partition_columns = new java.util.ArrayList<java.lang.String>(_list515.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _elem516;
          for (int _i517 = 0; _i517 < _list515.size; ++_i517)
          {
            _elem516 = iprot.readString();
            struct.partition_columns.add(_elem516);
          }
        }
        struct.setPartitionColumnsIsSet(true);
      }
      if (incoming.get(14)) {
        struct.write_session_id = iprot.readString();
        struct.setWriteSessionIdIsSet(true);
      }
      if (incoming.get(15)) {
        {
          org.apache.thrift.protocol.TMap _map518 = iprot.readMapBegin(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING); 
          struct.properties = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map518.size);
          @org.apache.thrift.annotation.Nullable java.lang.String _key519;
          @org.apache.thrift.annotation.Nullable java.lang.String _val520;
          for (int _i521 = 0; _i521 < _map518.size; ++_i521)
          {
            _key519 = iprot.readString();
            _val520 = iprot.readString();
            struct.properties.put(_key519, _val520);
          }
        }
        struct.setPropertiesIsSet(true);
      }
      if (incoming.get(16)) {
        struct.max_write_batch_rows = iprot.readI32();
        struct.setMaxWriteBatchRowsIsSet(true);
      }
      if (incoming.get(17)) {
        struct.txn_id = iprot.readI64();
        struct.setTxnIdIsSet(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();
  }
}