// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: greptime/v1/column.proto

package io.greptime.v1;

public final class Columns {
  private Columns() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ColumnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.Column)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string column_name = 1;</code>
     * @return The columnName.
     */
    java.lang.String getColumnName();
    /**
     * <code>string column_name = 1;</code>
     * @return The bytes for columnName.
     */
    com.google.protobuf.ByteString
        getColumnNameBytes();

    /**
     * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
     * @return The enum numeric value on the wire for semanticType.
     */
    int getSemanticTypeValue();
    /**
     * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
     * @return The semanticType.
     */
    io.greptime.v1.Common.SemanticType getSemanticType();

    /**
     * <pre>
     * The array of non-null values in this column.
     * For example: suppose there is a column "foo" that contains some int32
     * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
     *   column:
     *     column_name: foo
     *     semantic_type: Tag
     *     values: 1, 2, 3, 4, 5, 7, 8, 9
     *     null_masks: 00100000 00000010
     * </pre>
     *
     * <code>.greptime.v1.Column.Values values = 3;</code>
     * @return Whether the values field is set.
     */
    boolean hasValues();
    /**
     * <pre>
     * The array of non-null values in this column.
     * For example: suppose there is a column "foo" that contains some int32
     * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
     *   column:
     *     column_name: foo
     *     semantic_type: Tag
     *     values: 1, 2, 3, 4, 5, 7, 8, 9
     *     null_masks: 00100000 00000010
     * </pre>
     *
     * <code>.greptime.v1.Column.Values values = 3;</code>
     * @return The values.
     */
    io.greptime.v1.Columns.Column.Values getValues();
    /**
     * <pre>
     * The array of non-null values in this column.
     * For example: suppose there is a column "foo" that contains some int32
     * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
     *   column:
     *     column_name: foo
     *     semantic_type: Tag
     *     values: 1, 2, 3, 4, 5, 7, 8, 9
     *     null_masks: 00100000 00000010
     * </pre>
     *
     * <code>.greptime.v1.Column.Values values = 3;</code>
     */
    io.greptime.v1.Columns.Column.ValuesOrBuilder getValuesOrBuilder();

    /**
     * <pre>
     * Mask maps the positions of null values.
     * If a bit in null_mask is 1, it indicates that the column value at that
     * position is null.
     * </pre>
     *
     * <code>bytes null_mask = 4;</code>
     * @return The nullMask.
     */
    com.google.protobuf.ByteString getNullMask();

    /**
     * <pre>
     * Helpful in creating vector from column.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
     * @return The enum numeric value on the wire for datatype.
     */
    int getDatatypeValue();
    /**
     * <pre>
     * Helpful in creating vector from column.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
     * @return The datatype.
     */
    io.greptime.v1.Common.ColumnDataType getDatatype();

    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
     * @return Whether the datatypeExtension field is set.
     */
    boolean hasDatatypeExtension();
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
     * @return The datatypeExtension.
     */
    io.greptime.v1.Common.ColumnDataTypeExtension getDatatypeExtension();
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
     */
    io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getDatatypeExtensionOrBuilder();

    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 7;</code>
     * @return Whether the options field is set.
     */
    boolean hasOptions();
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 7;</code>
     * @return The options.
     */
    io.greptime.v1.Common.ColumnOptions getOptions();
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 7;</code>
     */
    io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.Column}
   */
  public static final class Column extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Column)
      ColumnOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Column.newBuilder() to construct.
    private Column(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Column() {
      columnName_ = "";
      semanticType_ = 0;
      nullMask_ = com.google.protobuf.ByteString.EMPTY;
      datatype_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Column();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Column(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              columnName_ = s;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              semanticType_ = rawValue;
              break;
            }
            case 26: {
              io.greptime.v1.Columns.Column.Values.Builder subBuilder = null;
              if (values_ != null) {
                subBuilder = values_.toBuilder();
              }
              values_ = input.readMessage(io.greptime.v1.Columns.Column.Values.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(values_);
                values_ = subBuilder.buildPartial();
              }

              break;
            }
            case 34: {

              nullMask_ = input.readBytes();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              datatype_ = rawValue;
              break;
            }
            case 50: {
              io.greptime.v1.Common.ColumnDataTypeExtension.Builder subBuilder = null;
              if (datatypeExtension_ != null) {
                subBuilder = datatypeExtension_.toBuilder();
              }
              datatypeExtension_ = input.readMessage(io.greptime.v1.Common.ColumnDataTypeExtension.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(datatypeExtension_);
                datatypeExtension_ = subBuilder.buildPartial();
              }

              break;
            }
            case 58: {
              io.greptime.v1.Common.ColumnOptions.Builder subBuilder = null;
              if (options_ != null) {
                subBuilder = options_.toBuilder();
              }
              options_ = input.readMessage(io.greptime.v1.Common.ColumnOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(options_);
                options_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Columns.internal_static_greptime_v1_Column_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Columns.internal_static_greptime_v1_Column_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Columns.Column.class, io.greptime.v1.Columns.Column.Builder.class);
    }

    public interface ValuesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:greptime.v1.Column.Values)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>repeated int32 i8_values = 1;</code>
       * @return A list containing the i8Values.
       */
      java.util.List<java.lang.Integer> getI8ValuesList();
      /**
       * <code>repeated int32 i8_values = 1;</code>
       * @return The count of i8Values.
       */
      int getI8ValuesCount();
      /**
       * <code>repeated int32 i8_values = 1;</code>
       * @param index The index of the element to return.
       * @return The i8Values at the given index.
       */
      int getI8Values(int index);

      /**
       * <code>repeated int32 i16_values = 2;</code>
       * @return A list containing the i16Values.
       */
      java.util.List<java.lang.Integer> getI16ValuesList();
      /**
       * <code>repeated int32 i16_values = 2;</code>
       * @return The count of i16Values.
       */
      int getI16ValuesCount();
      /**
       * <code>repeated int32 i16_values = 2;</code>
       * @param index The index of the element to return.
       * @return The i16Values at the given index.
       */
      int getI16Values(int index);

      /**
       * <code>repeated int32 i32_values = 3;</code>
       * @return A list containing the i32Values.
       */
      java.util.List<java.lang.Integer> getI32ValuesList();
      /**
       * <code>repeated int32 i32_values = 3;</code>
       * @return The count of i32Values.
       */
      int getI32ValuesCount();
      /**
       * <code>repeated int32 i32_values = 3;</code>
       * @param index The index of the element to return.
       * @return The i32Values at the given index.
       */
      int getI32Values(int index);

      /**
       * <code>repeated int64 i64_values = 4;</code>
       * @return A list containing the i64Values.
       */
      java.util.List<java.lang.Long> getI64ValuesList();
      /**
       * <code>repeated int64 i64_values = 4;</code>
       * @return The count of i64Values.
       */
      int getI64ValuesCount();
      /**
       * <code>repeated int64 i64_values = 4;</code>
       * @param index The index of the element to return.
       * @return The i64Values at the given index.
       */
      long getI64Values(int index);

      /**
       * <code>repeated uint32 u8_values = 5;</code>
       * @return A list containing the u8Values.
       */
      java.util.List<java.lang.Integer> getU8ValuesList();
      /**
       * <code>repeated uint32 u8_values = 5;</code>
       * @return The count of u8Values.
       */
      int getU8ValuesCount();
      /**
       * <code>repeated uint32 u8_values = 5;</code>
       * @param index The index of the element to return.
       * @return The u8Values at the given index.
       */
      int getU8Values(int index);

      /**
       * <code>repeated uint32 u16_values = 6;</code>
       * @return A list containing the u16Values.
       */
      java.util.List<java.lang.Integer> getU16ValuesList();
      /**
       * <code>repeated uint32 u16_values = 6;</code>
       * @return The count of u16Values.
       */
      int getU16ValuesCount();
      /**
       * <code>repeated uint32 u16_values = 6;</code>
       * @param index The index of the element to return.
       * @return The u16Values at the given index.
       */
      int getU16Values(int index);

      /**
       * <code>repeated uint32 u32_values = 7;</code>
       * @return A list containing the u32Values.
       */
      java.util.List<java.lang.Integer> getU32ValuesList();
      /**
       * <code>repeated uint32 u32_values = 7;</code>
       * @return The count of u32Values.
       */
      int getU32ValuesCount();
      /**
       * <code>repeated uint32 u32_values = 7;</code>
       * @param index The index of the element to return.
       * @return The u32Values at the given index.
       */
      int getU32Values(int index);

      /**
       * <code>repeated uint64 u64_values = 8;</code>
       * @return A list containing the u64Values.
       */
      java.util.List<java.lang.Long> getU64ValuesList();
      /**
       * <code>repeated uint64 u64_values = 8;</code>
       * @return The count of u64Values.
       */
      int getU64ValuesCount();
      /**
       * <code>repeated uint64 u64_values = 8;</code>
       * @param index The index of the element to return.
       * @return The u64Values at the given index.
       */
      long getU64Values(int index);

      /**
       * <code>repeated float f32_values = 9;</code>
       * @return A list containing the f32Values.
       */
      java.util.List<java.lang.Float> getF32ValuesList();
      /**
       * <code>repeated float f32_values = 9;</code>
       * @return The count of f32Values.
       */
      int getF32ValuesCount();
      /**
       * <code>repeated float f32_values = 9;</code>
       * @param index The index of the element to return.
       * @return The f32Values at the given index.
       */
      float getF32Values(int index);

      /**
       * <code>repeated double f64_values = 10;</code>
       * @return A list containing the f64Values.
       */
      java.util.List<java.lang.Double> getF64ValuesList();
      /**
       * <code>repeated double f64_values = 10;</code>
       * @return The count of f64Values.
       */
      int getF64ValuesCount();
      /**
       * <code>repeated double f64_values = 10;</code>
       * @param index The index of the element to return.
       * @return The f64Values at the given index.
       */
      double getF64Values(int index);

      /**
       * <code>repeated bool bool_values = 11;</code>
       * @return A list containing the boolValues.
       */
      java.util.List<java.lang.Boolean> getBoolValuesList();
      /**
       * <code>repeated bool bool_values = 11;</code>
       * @return The count of boolValues.
       */
      int getBoolValuesCount();
      /**
       * <code>repeated bool bool_values = 11;</code>
       * @param index The index of the element to return.
       * @return The boolValues at the given index.
       */
      boolean getBoolValues(int index);

      /**
       * <code>repeated bytes binary_values = 12;</code>
       * @return A list containing the binaryValues.
       */
      java.util.List<com.google.protobuf.ByteString> getBinaryValuesList();
      /**
       * <code>repeated bytes binary_values = 12;</code>
       * @return The count of binaryValues.
       */
      int getBinaryValuesCount();
      /**
       * <code>repeated bytes binary_values = 12;</code>
       * @param index The index of the element to return.
       * @return The binaryValues at the given index.
       */
      com.google.protobuf.ByteString getBinaryValues(int index);

      /**
       * <code>repeated string string_values = 13;</code>
       * @return A list containing the stringValues.
       */
      java.util.List<java.lang.String>
          getStringValuesList();
      /**
       * <code>repeated string string_values = 13;</code>
       * @return The count of stringValues.
       */
      int getStringValuesCount();
      /**
       * <code>repeated string string_values = 13;</code>
       * @param index The index of the element to return.
       * @return The stringValues at the given index.
       */
      java.lang.String getStringValues(int index);
      /**
       * <code>repeated string string_values = 13;</code>
       * @param index The index of the value to return.
       * @return The bytes of the stringValues at the given index.
       */
      com.google.protobuf.ByteString
          getStringValuesBytes(int index);

      /**
       * <code>repeated int32 date_values = 14;</code>
       * @return A list containing the dateValues.
       */
      java.util.List<java.lang.Integer> getDateValuesList();
      /**
       * <code>repeated int32 date_values = 14;</code>
       * @return The count of dateValues.
       */
      int getDateValuesCount();
      /**
       * <code>repeated int32 date_values = 14;</code>
       * @param index The index of the element to return.
       * @return The dateValues at the given index.
       */
      int getDateValues(int index);

      /**
       * <code>repeated int64 datetime_values = 15;</code>
       * @return A list containing the datetimeValues.
       */
      java.util.List<java.lang.Long> getDatetimeValuesList();
      /**
       * <code>repeated int64 datetime_values = 15;</code>
       * @return The count of datetimeValues.
       */
      int getDatetimeValuesCount();
      /**
       * <code>repeated int64 datetime_values = 15;</code>
       * @param index The index of the element to return.
       * @return The datetimeValues at the given index.
       */
      long getDatetimeValues(int index);

      /**
       * <code>repeated int64 timestamp_second_values = 16;</code>
       * @return A list containing the timestampSecondValues.
       */
      java.util.List<java.lang.Long> getTimestampSecondValuesList();
      /**
       * <code>repeated int64 timestamp_second_values = 16;</code>
       * @return The count of timestampSecondValues.
       */
      int getTimestampSecondValuesCount();
      /**
       * <code>repeated int64 timestamp_second_values = 16;</code>
       * @param index The index of the element to return.
       * @return The timestampSecondValues at the given index.
       */
      long getTimestampSecondValues(int index);

      /**
       * <code>repeated int64 timestamp_millisecond_values = 17;</code>
       * @return A list containing the timestampMillisecondValues.
       */
      java.util.List<java.lang.Long> getTimestampMillisecondValuesList();
      /**
       * <code>repeated int64 timestamp_millisecond_values = 17;</code>
       * @return The count of timestampMillisecondValues.
       */
      int getTimestampMillisecondValuesCount();
      /**
       * <code>repeated int64 timestamp_millisecond_values = 17;</code>
       * @param index The index of the element to return.
       * @return The timestampMillisecondValues at the given index.
       */
      long getTimestampMillisecondValues(int index);

      /**
       * <code>repeated int64 timestamp_microsecond_values = 18;</code>
       * @return A list containing the timestampMicrosecondValues.
       */
      java.util.List<java.lang.Long> getTimestampMicrosecondValuesList();
      /**
       * <code>repeated int64 timestamp_microsecond_values = 18;</code>
       * @return The count of timestampMicrosecondValues.
       */
      int getTimestampMicrosecondValuesCount();
      /**
       * <code>repeated int64 timestamp_microsecond_values = 18;</code>
       * @param index The index of the element to return.
       * @return The timestampMicrosecondValues at the given index.
       */
      long getTimestampMicrosecondValues(int index);

      /**
       * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
       * @return A list containing the timestampNanosecondValues.
       */
      java.util.List<java.lang.Long> getTimestampNanosecondValuesList();
      /**
       * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
       * @return The count of timestampNanosecondValues.
       */
      int getTimestampNanosecondValuesCount();
      /**
       * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
       * @param index The index of the element to return.
       * @return The timestampNanosecondValues at the given index.
       */
      long getTimestampNanosecondValues(int index);

      /**
       * <code>repeated int64 time_second_values = 20;</code>
       * @return A list containing the timeSecondValues.
       */
      java.util.List<java.lang.Long> getTimeSecondValuesList();
      /**
       * <code>repeated int64 time_second_values = 20;</code>
       * @return The count of timeSecondValues.
       */
      int getTimeSecondValuesCount();
      /**
       * <code>repeated int64 time_second_values = 20;</code>
       * @param index The index of the element to return.
       * @return The timeSecondValues at the given index.
       */
      long getTimeSecondValues(int index);

      /**
       * <code>repeated int64 time_millisecond_values = 21;</code>
       * @return A list containing the timeMillisecondValues.
       */
      java.util.List<java.lang.Long> getTimeMillisecondValuesList();
      /**
       * <code>repeated int64 time_millisecond_values = 21;</code>
       * @return The count of timeMillisecondValues.
       */
      int getTimeMillisecondValuesCount();
      /**
       * <code>repeated int64 time_millisecond_values = 21;</code>
       * @param index The index of the element to return.
       * @return The timeMillisecondValues at the given index.
       */
      long getTimeMillisecondValues(int index);

      /**
       * <code>repeated int64 time_microsecond_values = 22;</code>
       * @return A list containing the timeMicrosecondValues.
       */
      java.util.List<java.lang.Long> getTimeMicrosecondValuesList();
      /**
       * <code>repeated int64 time_microsecond_values = 22;</code>
       * @return The count of timeMicrosecondValues.
       */
      int getTimeMicrosecondValuesCount();
      /**
       * <code>repeated int64 time_microsecond_values = 22;</code>
       * @param index The index of the element to return.
       * @return The timeMicrosecondValues at the given index.
       */
      long getTimeMicrosecondValues(int index);

      /**
       * <code>repeated int64 time_nanosecond_values = 23;</code>
       * @return A list containing the timeNanosecondValues.
       */
      java.util.List<java.lang.Long> getTimeNanosecondValuesList();
      /**
       * <code>repeated int64 time_nanosecond_values = 23;</code>
       * @return The count of timeNanosecondValues.
       */
      int getTimeNanosecondValuesCount();
      /**
       * <code>repeated int64 time_nanosecond_values = 23;</code>
       * @param index The index of the element to return.
       * @return The timeNanosecondValues at the given index.
       */
      long getTimeNanosecondValues(int index);

      /**
       * <code>repeated int32 interval_year_month_values = 24;</code>
       * @return A list containing the intervalYearMonthValues.
       */
      java.util.List<java.lang.Integer> getIntervalYearMonthValuesList();
      /**
       * <code>repeated int32 interval_year_month_values = 24;</code>
       * @return The count of intervalYearMonthValues.
       */
      int getIntervalYearMonthValuesCount();
      /**
       * <code>repeated int32 interval_year_month_values = 24;</code>
       * @param index The index of the element to return.
       * @return The intervalYearMonthValues at the given index.
       */
      int getIntervalYearMonthValues(int index);

      /**
       * <code>repeated int64 interval_day_time_values = 25;</code>
       * @return A list containing the intervalDayTimeValues.
       */
      java.util.List<java.lang.Long> getIntervalDayTimeValuesList();
      /**
       * <code>repeated int64 interval_day_time_values = 25;</code>
       * @return The count of intervalDayTimeValues.
       */
      int getIntervalDayTimeValuesCount();
      /**
       * <code>repeated int64 interval_day_time_values = 25;</code>
       * @param index The index of the element to return.
       * @return The intervalDayTimeValues at the given index.
       */
      long getIntervalDayTimeValues(int index);

      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      java.util.List<io.greptime.v1.Common.IntervalMonthDayNano> 
          getIntervalMonthDayNanoValuesList();
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      io.greptime.v1.Common.IntervalMonthDayNano getIntervalMonthDayNanoValues(int index);
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      int getIntervalMonthDayNanoValuesCount();
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      java.util.List<? extends io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> 
          getIntervalMonthDayNanoValuesOrBuilderList();
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder getIntervalMonthDayNanoValuesOrBuilder(
          int index);

      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      java.util.List<io.greptime.v1.Common.Decimal128> 
          getDecimal128ValuesList();
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      io.greptime.v1.Common.Decimal128 getDecimal128Values(int index);
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      int getDecimal128ValuesCount();
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      java.util.List<? extends io.greptime.v1.Common.Decimal128OrBuilder> 
          getDecimal128ValuesOrBuilderList();
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      io.greptime.v1.Common.Decimal128OrBuilder getDecimal128ValuesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code greptime.v1.Column.Values}
     */
    public static final class Values extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:greptime.v1.Column.Values)
        ValuesOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Values.newBuilder() to construct.
      private Values(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Values() {
        i8Values_ = emptyIntList();
        i16Values_ = emptyIntList();
        i32Values_ = emptyIntList();
        i64Values_ = emptyLongList();
        u8Values_ = emptyIntList();
        u16Values_ = emptyIntList();
        u32Values_ = emptyIntList();
        u64Values_ = emptyLongList();
        f32Values_ = emptyFloatList();
        f64Values_ = emptyDoubleList();
        boolValues_ = emptyBooleanList();
        binaryValues_ = java.util.Collections.emptyList();
        stringValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        dateValues_ = emptyIntList();
        datetimeValues_ = emptyLongList();
        timestampSecondValues_ = emptyLongList();
        timestampMillisecondValues_ = emptyLongList();
        timestampMicrosecondValues_ = emptyLongList();
        timestampNanosecondValues_ = emptyLongList();
        timeSecondValues_ = emptyLongList();
        timeMillisecondValues_ = emptyLongList();
        timeMicrosecondValues_ = emptyLongList();
        timeNanosecondValues_ = emptyLongList();
        intervalYearMonthValues_ = emptyIntList();
        intervalDayTimeValues_ = emptyLongList();
        intervalMonthDayNanoValues_ = java.util.Collections.emptyList();
        decimal128Values_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Values();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Values(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  i8Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000001;
                }
                i8Values_.addInt(input.readInt32());
                break;
              }
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                  i8Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000001;
                }
                while (input.getBytesUntilLimit() > 0) {
                  i8Values_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 16: {
                if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                  i16Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000002;
                }
                i16Values_.addInt(input.readInt32());
                break;
              }
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
                  i16Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000002;
                }
                while (input.getBytesUntilLimit() > 0) {
                  i16Values_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 24: {
                if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                  i32Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000004;
                }
                i32Values_.addInt(input.readInt32());
                break;
              }
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
                  i32Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000004;
                }
                while (input.getBytesUntilLimit() > 0) {
                  i32Values_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 32: {
                if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                  i64Values_ = newLongList();
                  mutable_bitField0_ |= 0x00000008;
                }
                i64Values_.addLong(input.readInt64());
                break;
              }
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000008) != 0) && input.getBytesUntilLimit() > 0) {
                  i64Values_ = newLongList();
                  mutable_bitField0_ |= 0x00000008;
                }
                while (input.getBytesUntilLimit() > 0) {
                  i64Values_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 40: {
                if (!((mutable_bitField0_ & 0x00000010) != 0)) {
                  u8Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000010;
                }
                u8Values_.addInt(input.readUInt32());
                break;
              }
              case 42: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000010) != 0) && input.getBytesUntilLimit() > 0) {
                  u8Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000010;
                }
                while (input.getBytesUntilLimit() > 0) {
                  u8Values_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 48: {
                if (!((mutable_bitField0_ & 0x00000020) != 0)) {
                  u16Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000020;
                }
                u16Values_.addInt(input.readUInt32());
                break;
              }
              case 50: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000020) != 0) && input.getBytesUntilLimit() > 0) {
                  u16Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000020;
                }
                while (input.getBytesUntilLimit() > 0) {
                  u16Values_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 56: {
                if (!((mutable_bitField0_ & 0x00000040) != 0)) {
                  u32Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000040;
                }
                u32Values_.addInt(input.readUInt32());
                break;
              }
              case 58: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000040) != 0) && input.getBytesUntilLimit() > 0) {
                  u32Values_ = newIntList();
                  mutable_bitField0_ |= 0x00000040;
                }
                while (input.getBytesUntilLimit() > 0) {
                  u32Values_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 64: {
                if (!((mutable_bitField0_ & 0x00000080) != 0)) {
                  u64Values_ = newLongList();
                  mutable_bitField0_ |= 0x00000080;
                }
                u64Values_.addLong(input.readUInt64());
                break;
              }
              case 66: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000080) != 0) && input.getBytesUntilLimit() > 0) {
                  u64Values_ = newLongList();
                  mutable_bitField0_ |= 0x00000080;
                }
                while (input.getBytesUntilLimit() > 0) {
                  u64Values_.addLong(input.readUInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 77: {
                if (!((mutable_bitField0_ & 0x00000100) != 0)) {
                  f32Values_ = newFloatList();
                  mutable_bitField0_ |= 0x00000100;
                }
                f32Values_.addFloat(input.readFloat());
                break;
              }
              case 74: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000100) != 0) && input.getBytesUntilLimit() > 0) {
                  f32Values_ = newFloatList();
                  mutable_bitField0_ |= 0x00000100;
                }
                while (input.getBytesUntilLimit() > 0) {
                  f32Values_.addFloat(input.readFloat());
                }
                input.popLimit(limit);
                break;
              }
              case 81: {
                if (!((mutable_bitField0_ & 0x00000200) != 0)) {
                  f64Values_ = newDoubleList();
                  mutable_bitField0_ |= 0x00000200;
                }
                f64Values_.addDouble(input.readDouble());
                break;
              }
              case 82: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000200) != 0) && input.getBytesUntilLimit() > 0) {
                  f64Values_ = newDoubleList();
                  mutable_bitField0_ |= 0x00000200;
                }
                while (input.getBytesUntilLimit() > 0) {
                  f64Values_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              }
              case 88: {
                if (!((mutable_bitField0_ & 0x00000400) != 0)) {
                  boolValues_ = newBooleanList();
                  mutable_bitField0_ |= 0x00000400;
                }
                boolValues_.addBoolean(input.readBool());
                break;
              }
              case 90: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000400) != 0) && input.getBytesUntilLimit() > 0) {
                  boolValues_ = newBooleanList();
                  mutable_bitField0_ |= 0x00000400;
                }
                while (input.getBytesUntilLimit() > 0) {
                  boolValues_.addBoolean(input.readBool());
                }
                input.popLimit(limit);
                break;
              }
              case 98: {
                if (!((mutable_bitField0_ & 0x00000800) != 0)) {
                  binaryValues_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
                  mutable_bitField0_ |= 0x00000800;
                }
                binaryValues_.add(input.readBytes());
                break;
              }
              case 106: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00001000) != 0)) {
                  stringValues_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00001000;
                }
                stringValues_.add(s);
                break;
              }
              case 112: {
                if (!((mutable_bitField0_ & 0x00002000) != 0)) {
                  dateValues_ = newIntList();
                  mutable_bitField0_ |= 0x00002000;
                }
                dateValues_.addInt(input.readInt32());
                break;
              }
              case 114: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00002000) != 0) && input.getBytesUntilLimit() > 0) {
                  dateValues_ = newIntList();
                  mutable_bitField0_ |= 0x00002000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  dateValues_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 120: {
                if (!((mutable_bitField0_ & 0x00004000) != 0)) {
                  datetimeValues_ = newLongList();
                  mutable_bitField0_ |= 0x00004000;
                }
                datetimeValues_.addLong(input.readInt64());
                break;
              }
              case 122: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00004000) != 0) && input.getBytesUntilLimit() > 0) {
                  datetimeValues_ = newLongList();
                  mutable_bitField0_ |= 0x00004000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  datetimeValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 128: {
                if (!((mutable_bitField0_ & 0x00008000) != 0)) {
                  timestampSecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00008000;
                }
                timestampSecondValues_.addLong(input.readInt64());
                break;
              }
              case 130: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00008000) != 0) && input.getBytesUntilLimit() > 0) {
                  timestampSecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00008000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timestampSecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 136: {
                if (!((mutable_bitField0_ & 0x00010000) != 0)) {
                  timestampMillisecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00010000;
                }
                timestampMillisecondValues_.addLong(input.readInt64());
                break;
              }
              case 138: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00010000) != 0) && input.getBytesUntilLimit() > 0) {
                  timestampMillisecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00010000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timestampMillisecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 144: {
                if (!((mutable_bitField0_ & 0x00020000) != 0)) {
                  timestampMicrosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00020000;
                }
                timestampMicrosecondValues_.addLong(input.readInt64());
                break;
              }
              case 146: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00020000) != 0) && input.getBytesUntilLimit() > 0) {
                  timestampMicrosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00020000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timestampMicrosecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 152: {
                if (!((mutable_bitField0_ & 0x00040000) != 0)) {
                  timestampNanosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00040000;
                }
                timestampNanosecondValues_.addLong(input.readInt64());
                break;
              }
              case 154: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00040000) != 0) && input.getBytesUntilLimit() > 0) {
                  timestampNanosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00040000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timestampNanosecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 160: {
                if (!((mutable_bitField0_ & 0x00080000) != 0)) {
                  timeSecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00080000;
                }
                timeSecondValues_.addLong(input.readInt64());
                break;
              }
              case 162: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00080000) != 0) && input.getBytesUntilLimit() > 0) {
                  timeSecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00080000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timeSecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 168: {
                if (!((mutable_bitField0_ & 0x00100000) != 0)) {
                  timeMillisecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00100000;
                }
                timeMillisecondValues_.addLong(input.readInt64());
                break;
              }
              case 170: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00100000) != 0) && input.getBytesUntilLimit() > 0) {
                  timeMillisecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00100000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timeMillisecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 176: {
                if (!((mutable_bitField0_ & 0x00200000) != 0)) {
                  timeMicrosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00200000;
                }
                timeMicrosecondValues_.addLong(input.readInt64());
                break;
              }
              case 178: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00200000) != 0) && input.getBytesUntilLimit() > 0) {
                  timeMicrosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00200000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timeMicrosecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 184: {
                if (!((mutable_bitField0_ & 0x00400000) != 0)) {
                  timeNanosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00400000;
                }
                timeNanosecondValues_.addLong(input.readInt64());
                break;
              }
              case 186: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00400000) != 0) && input.getBytesUntilLimit() > 0) {
                  timeNanosecondValues_ = newLongList();
                  mutable_bitField0_ |= 0x00400000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  timeNanosecondValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 192: {
                if (!((mutable_bitField0_ & 0x00800000) != 0)) {
                  intervalYearMonthValues_ = newIntList();
                  mutable_bitField0_ |= 0x00800000;
                }
                intervalYearMonthValues_.addInt(input.readInt32());
                break;
              }
              case 194: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00800000) != 0) && input.getBytesUntilLimit() > 0) {
                  intervalYearMonthValues_ = newIntList();
                  mutable_bitField0_ |= 0x00800000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  intervalYearMonthValues_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
              case 200: {
                if (!((mutable_bitField0_ & 0x01000000) != 0)) {
                  intervalDayTimeValues_ = newLongList();
                  mutable_bitField0_ |= 0x01000000;
                }
                intervalDayTimeValues_.addLong(input.readInt64());
                break;
              }
              case 202: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x01000000) != 0) && input.getBytesUntilLimit() > 0) {
                  intervalDayTimeValues_ = newLongList();
                  mutable_bitField0_ |= 0x01000000;
                }
                while (input.getBytesUntilLimit() > 0) {
                  intervalDayTimeValues_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
              case 210: {
                if (!((mutable_bitField0_ & 0x02000000) != 0)) {
                  intervalMonthDayNanoValues_ = new java.util.ArrayList<io.greptime.v1.Common.IntervalMonthDayNano>();
                  mutable_bitField0_ |= 0x02000000;
                }
                intervalMonthDayNanoValues_.add(
                    input.readMessage(io.greptime.v1.Common.IntervalMonthDayNano.parser(), extensionRegistry));
                break;
              }
              case 250: {
                if (!((mutable_bitField0_ & 0x04000000) != 0)) {
                  decimal128Values_ = new java.util.ArrayList<io.greptime.v1.Common.Decimal128>();
                  mutable_bitField0_ |= 0x04000000;
                }
                decimal128Values_.add(
                    input.readMessage(io.greptime.v1.Common.Decimal128.parser(), extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            i8Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000002) != 0)) {
            i16Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000004) != 0)) {
            i32Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000008) != 0)) {
            i64Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000010) != 0)) {
            u8Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000020) != 0)) {
            u16Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000040) != 0)) {
            u32Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000080) != 0)) {
            u64Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000100) != 0)) {
            f32Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000200) != 0)) {
            f64Values_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000400) != 0)) {
            boolValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00000800) != 0)) {
            binaryValues_ = java.util.Collections.unmodifiableList(binaryValues_); // C
          }
          if (((mutable_bitField0_ & 0x00001000) != 0)) {
            stringValues_ = stringValues_.getUnmodifiableView();
          }
          if (((mutable_bitField0_ & 0x00002000) != 0)) {
            dateValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00004000) != 0)) {
            datetimeValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00008000) != 0)) {
            timestampSecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00010000) != 0)) {
            timestampMillisecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00020000) != 0)) {
            timestampMicrosecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00040000) != 0)) {
            timestampNanosecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00080000) != 0)) {
            timeSecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00100000) != 0)) {
            timeMillisecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00200000) != 0)) {
            timeMicrosecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00400000) != 0)) {
            timeNanosecondValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x00800000) != 0)) {
            intervalYearMonthValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x01000000) != 0)) {
            intervalDayTimeValues_.makeImmutable(); // C
          }
          if (((mutable_bitField0_ & 0x02000000) != 0)) {
            intervalMonthDayNanoValues_ = java.util.Collections.unmodifiableList(intervalMonthDayNanoValues_);
          }
          if (((mutable_bitField0_ & 0x04000000) != 0)) {
            decimal128Values_ = java.util.Collections.unmodifiableList(decimal128Values_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Columns.internal_static_greptime_v1_Column_Values_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Columns.internal_static_greptime_v1_Column_Values_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Columns.Column.Values.class, io.greptime.v1.Columns.Column.Values.Builder.class);
      }

      public static final int I8_VALUES_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.IntList i8Values_;
      /**
       * <code>repeated int32 i8_values = 1;</code>
       * @return A list containing the i8Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getI8ValuesList() {
        return i8Values_;
      }
      /**
       * <code>repeated int32 i8_values = 1;</code>
       * @return The count of i8Values.
       */
      public int getI8ValuesCount() {
        return i8Values_.size();
      }
      /**
       * <code>repeated int32 i8_values = 1;</code>
       * @param index The index of the element to return.
       * @return The i8Values at the given index.
       */
      public int getI8Values(int index) {
        return i8Values_.getInt(index);
      }
      private int i8ValuesMemoizedSerializedSize = -1;

      public static final int I16_VALUES_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.IntList i16Values_;
      /**
       * <code>repeated int32 i16_values = 2;</code>
       * @return A list containing the i16Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getI16ValuesList() {
        return i16Values_;
      }
      /**
       * <code>repeated int32 i16_values = 2;</code>
       * @return The count of i16Values.
       */
      public int getI16ValuesCount() {
        return i16Values_.size();
      }
      /**
       * <code>repeated int32 i16_values = 2;</code>
       * @param index The index of the element to return.
       * @return The i16Values at the given index.
       */
      public int getI16Values(int index) {
        return i16Values_.getInt(index);
      }
      private int i16ValuesMemoizedSerializedSize = -1;

      public static final int I32_VALUES_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.IntList i32Values_;
      /**
       * <code>repeated int32 i32_values = 3;</code>
       * @return A list containing the i32Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getI32ValuesList() {
        return i32Values_;
      }
      /**
       * <code>repeated int32 i32_values = 3;</code>
       * @return The count of i32Values.
       */
      public int getI32ValuesCount() {
        return i32Values_.size();
      }
      /**
       * <code>repeated int32 i32_values = 3;</code>
       * @param index The index of the element to return.
       * @return The i32Values at the given index.
       */
      public int getI32Values(int index) {
        return i32Values_.getInt(index);
      }
      private int i32ValuesMemoizedSerializedSize = -1;

      public static final int I64_VALUES_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.LongList i64Values_;
      /**
       * <code>repeated int64 i64_values = 4;</code>
       * @return A list containing the i64Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getI64ValuesList() {
        return i64Values_;
      }
      /**
       * <code>repeated int64 i64_values = 4;</code>
       * @return The count of i64Values.
       */
      public int getI64ValuesCount() {
        return i64Values_.size();
      }
      /**
       * <code>repeated int64 i64_values = 4;</code>
       * @param index The index of the element to return.
       * @return The i64Values at the given index.
       */
      public long getI64Values(int index) {
        return i64Values_.getLong(index);
      }
      private int i64ValuesMemoizedSerializedSize = -1;

      public static final int U8_VALUES_FIELD_NUMBER = 5;
      private com.google.protobuf.Internal.IntList u8Values_;
      /**
       * <code>repeated uint32 u8_values = 5;</code>
       * @return A list containing the u8Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getU8ValuesList() {
        return u8Values_;
      }
      /**
       * <code>repeated uint32 u8_values = 5;</code>
       * @return The count of u8Values.
       */
      public int getU8ValuesCount() {
        return u8Values_.size();
      }
      /**
       * <code>repeated uint32 u8_values = 5;</code>
       * @param index The index of the element to return.
       * @return The u8Values at the given index.
       */
      public int getU8Values(int index) {
        return u8Values_.getInt(index);
      }
      private int u8ValuesMemoizedSerializedSize = -1;

      public static final int U16_VALUES_FIELD_NUMBER = 6;
      private com.google.protobuf.Internal.IntList u16Values_;
      /**
       * <code>repeated uint32 u16_values = 6;</code>
       * @return A list containing the u16Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getU16ValuesList() {
        return u16Values_;
      }
      /**
       * <code>repeated uint32 u16_values = 6;</code>
       * @return The count of u16Values.
       */
      public int getU16ValuesCount() {
        return u16Values_.size();
      }
      /**
       * <code>repeated uint32 u16_values = 6;</code>
       * @param index The index of the element to return.
       * @return The u16Values at the given index.
       */
      public int getU16Values(int index) {
        return u16Values_.getInt(index);
      }
      private int u16ValuesMemoizedSerializedSize = -1;

      public static final int U32_VALUES_FIELD_NUMBER = 7;
      private com.google.protobuf.Internal.IntList u32Values_;
      /**
       * <code>repeated uint32 u32_values = 7;</code>
       * @return A list containing the u32Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getU32ValuesList() {
        return u32Values_;
      }
      /**
       * <code>repeated uint32 u32_values = 7;</code>
       * @return The count of u32Values.
       */
      public int getU32ValuesCount() {
        return u32Values_.size();
      }
      /**
       * <code>repeated uint32 u32_values = 7;</code>
       * @param index The index of the element to return.
       * @return The u32Values at the given index.
       */
      public int getU32Values(int index) {
        return u32Values_.getInt(index);
      }
      private int u32ValuesMemoizedSerializedSize = -1;

      public static final int U64_VALUES_FIELD_NUMBER = 8;
      private com.google.protobuf.Internal.LongList u64Values_;
      /**
       * <code>repeated uint64 u64_values = 8;</code>
       * @return A list containing the u64Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getU64ValuesList() {
        return u64Values_;
      }
      /**
       * <code>repeated uint64 u64_values = 8;</code>
       * @return The count of u64Values.
       */
      public int getU64ValuesCount() {
        return u64Values_.size();
      }
      /**
       * <code>repeated uint64 u64_values = 8;</code>
       * @param index The index of the element to return.
       * @return The u64Values at the given index.
       */
      public long getU64Values(int index) {
        return u64Values_.getLong(index);
      }
      private int u64ValuesMemoizedSerializedSize = -1;

      public static final int F32_VALUES_FIELD_NUMBER = 9;
      private com.google.protobuf.Internal.FloatList f32Values_;
      /**
       * <code>repeated float f32_values = 9;</code>
       * @return A list containing the f32Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Float>
          getF32ValuesList() {
        return f32Values_;
      }
      /**
       * <code>repeated float f32_values = 9;</code>
       * @return The count of f32Values.
       */
      public int getF32ValuesCount() {
        return f32Values_.size();
      }
      /**
       * <code>repeated float f32_values = 9;</code>
       * @param index The index of the element to return.
       * @return The f32Values at the given index.
       */
      public float getF32Values(int index) {
        return f32Values_.getFloat(index);
      }
      private int f32ValuesMemoizedSerializedSize = -1;

      public static final int F64_VALUES_FIELD_NUMBER = 10;
      private com.google.protobuf.Internal.DoubleList f64Values_;
      /**
       * <code>repeated double f64_values = 10;</code>
       * @return A list containing the f64Values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Double>
          getF64ValuesList() {
        return f64Values_;
      }
      /**
       * <code>repeated double f64_values = 10;</code>
       * @return The count of f64Values.
       */
      public int getF64ValuesCount() {
        return f64Values_.size();
      }
      /**
       * <code>repeated double f64_values = 10;</code>
       * @param index The index of the element to return.
       * @return The f64Values at the given index.
       */
      public double getF64Values(int index) {
        return f64Values_.getDouble(index);
      }
      private int f64ValuesMemoizedSerializedSize = -1;

      public static final int BOOL_VALUES_FIELD_NUMBER = 11;
      private com.google.protobuf.Internal.BooleanList boolValues_;
      /**
       * <code>repeated bool bool_values = 11;</code>
       * @return A list containing the boolValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Boolean>
          getBoolValuesList() {
        return boolValues_;
      }
      /**
       * <code>repeated bool bool_values = 11;</code>
       * @return The count of boolValues.
       */
      public int getBoolValuesCount() {
        return boolValues_.size();
      }
      /**
       * <code>repeated bool bool_values = 11;</code>
       * @param index The index of the element to return.
       * @return The boolValues at the given index.
       */
      public boolean getBoolValues(int index) {
        return boolValues_.getBoolean(index);
      }
      private int boolValuesMemoizedSerializedSize = -1;

      public static final int BINARY_VALUES_FIELD_NUMBER = 12;
      private java.util.List<com.google.protobuf.ByteString> binaryValues_;
      /**
       * <code>repeated bytes binary_values = 12;</code>
       * @return A list containing the binaryValues.
       */
      @java.lang.Override
      public java.util.List<com.google.protobuf.ByteString>
          getBinaryValuesList() {
        return binaryValues_;
      }
      /**
       * <code>repeated bytes binary_values = 12;</code>
       * @return The count of binaryValues.
       */
      public int getBinaryValuesCount() {
        return binaryValues_.size();
      }
      /**
       * <code>repeated bytes binary_values = 12;</code>
       * @param index The index of the element to return.
       * @return The binaryValues at the given index.
       */
      public com.google.protobuf.ByteString getBinaryValues(int index) {
        return binaryValues_.get(index);
      }

      public static final int STRING_VALUES_FIELD_NUMBER = 13;
      private com.google.protobuf.LazyStringList stringValues_;
      /**
       * <code>repeated string string_values = 13;</code>
       * @return A list containing the stringValues.
       */
      public com.google.protobuf.ProtocolStringList
          getStringValuesList() {
        return stringValues_;
      }
      /**
       * <code>repeated string string_values = 13;</code>
       * @return The count of stringValues.
       */
      public int getStringValuesCount() {
        return stringValues_.size();
      }
      /**
       * <code>repeated string string_values = 13;</code>
       * @param index The index of the element to return.
       * @return The stringValues at the given index.
       */
      public java.lang.String getStringValues(int index) {
        return stringValues_.get(index);
      }
      /**
       * <code>repeated string string_values = 13;</code>
       * @param index The index of the value to return.
       * @return The bytes of the stringValues at the given index.
       */
      public com.google.protobuf.ByteString
          getStringValuesBytes(int index) {
        return stringValues_.getByteString(index);
      }

      public static final int DATE_VALUES_FIELD_NUMBER = 14;
      private com.google.protobuf.Internal.IntList dateValues_;
      /**
       * <code>repeated int32 date_values = 14;</code>
       * @return A list containing the dateValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getDateValuesList() {
        return dateValues_;
      }
      /**
       * <code>repeated int32 date_values = 14;</code>
       * @return The count of dateValues.
       */
      public int getDateValuesCount() {
        return dateValues_.size();
      }
      /**
       * <code>repeated int32 date_values = 14;</code>
       * @param index The index of the element to return.
       * @return The dateValues at the given index.
       */
      public int getDateValues(int index) {
        return dateValues_.getInt(index);
      }
      private int dateValuesMemoizedSerializedSize = -1;

      public static final int DATETIME_VALUES_FIELD_NUMBER = 15;
      private com.google.protobuf.Internal.LongList datetimeValues_;
      /**
       * <code>repeated int64 datetime_values = 15;</code>
       * @return A list containing the datetimeValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getDatetimeValuesList() {
        return datetimeValues_;
      }
      /**
       * <code>repeated int64 datetime_values = 15;</code>
       * @return The count of datetimeValues.
       */
      public int getDatetimeValuesCount() {
        return datetimeValues_.size();
      }
      /**
       * <code>repeated int64 datetime_values = 15;</code>
       * @param index The index of the element to return.
       * @return The datetimeValues at the given index.
       */
      public long getDatetimeValues(int index) {
        return datetimeValues_.getLong(index);
      }
      private int datetimeValuesMemoizedSerializedSize = -1;

      public static final int TIMESTAMP_SECOND_VALUES_FIELD_NUMBER = 16;
      private com.google.protobuf.Internal.LongList timestampSecondValues_;
      /**
       * <code>repeated int64 timestamp_second_values = 16;</code>
       * @return A list containing the timestampSecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimestampSecondValuesList() {
        return timestampSecondValues_;
      }
      /**
       * <code>repeated int64 timestamp_second_values = 16;</code>
       * @return The count of timestampSecondValues.
       */
      public int getTimestampSecondValuesCount() {
        return timestampSecondValues_.size();
      }
      /**
       * <code>repeated int64 timestamp_second_values = 16;</code>
       * @param index The index of the element to return.
       * @return The timestampSecondValues at the given index.
       */
      public long getTimestampSecondValues(int index) {
        return timestampSecondValues_.getLong(index);
      }
      private int timestampSecondValuesMemoizedSerializedSize = -1;

      public static final int TIMESTAMP_MILLISECOND_VALUES_FIELD_NUMBER = 17;
      private com.google.protobuf.Internal.LongList timestampMillisecondValues_;
      /**
       * <code>repeated int64 timestamp_millisecond_values = 17;</code>
       * @return A list containing the timestampMillisecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimestampMillisecondValuesList() {
        return timestampMillisecondValues_;
      }
      /**
       * <code>repeated int64 timestamp_millisecond_values = 17;</code>
       * @return The count of timestampMillisecondValues.
       */
      public int getTimestampMillisecondValuesCount() {
        return timestampMillisecondValues_.size();
      }
      /**
       * <code>repeated int64 timestamp_millisecond_values = 17;</code>
       * @param index The index of the element to return.
       * @return The timestampMillisecondValues at the given index.
       */
      public long getTimestampMillisecondValues(int index) {
        return timestampMillisecondValues_.getLong(index);
      }
      private int timestampMillisecondValuesMemoizedSerializedSize = -1;

      public static final int TIMESTAMP_MICROSECOND_VALUES_FIELD_NUMBER = 18;
      private com.google.protobuf.Internal.LongList timestampMicrosecondValues_;
      /**
       * <code>repeated int64 timestamp_microsecond_values = 18;</code>
       * @return A list containing the timestampMicrosecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimestampMicrosecondValuesList() {
        return timestampMicrosecondValues_;
      }
      /**
       * <code>repeated int64 timestamp_microsecond_values = 18;</code>
       * @return The count of timestampMicrosecondValues.
       */
      public int getTimestampMicrosecondValuesCount() {
        return timestampMicrosecondValues_.size();
      }
      /**
       * <code>repeated int64 timestamp_microsecond_values = 18;</code>
       * @param index The index of the element to return.
       * @return The timestampMicrosecondValues at the given index.
       */
      public long getTimestampMicrosecondValues(int index) {
        return timestampMicrosecondValues_.getLong(index);
      }
      private int timestampMicrosecondValuesMemoizedSerializedSize = -1;

      public static final int TIMESTAMP_NANOSECOND_VALUES_FIELD_NUMBER = 19;
      private com.google.protobuf.Internal.LongList timestampNanosecondValues_;
      /**
       * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
       * @return A list containing the timestampNanosecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimestampNanosecondValuesList() {
        return timestampNanosecondValues_;
      }
      /**
       * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
       * @return The count of timestampNanosecondValues.
       */
      public int getTimestampNanosecondValuesCount() {
        return timestampNanosecondValues_.size();
      }
      /**
       * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
       * @param index The index of the element to return.
       * @return The timestampNanosecondValues at the given index.
       */
      public long getTimestampNanosecondValues(int index) {
        return timestampNanosecondValues_.getLong(index);
      }
      private int timestampNanosecondValuesMemoizedSerializedSize = -1;

      public static final int TIME_SECOND_VALUES_FIELD_NUMBER = 20;
      private com.google.protobuf.Internal.LongList timeSecondValues_;
      /**
       * <code>repeated int64 time_second_values = 20;</code>
       * @return A list containing the timeSecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimeSecondValuesList() {
        return timeSecondValues_;
      }
      /**
       * <code>repeated int64 time_second_values = 20;</code>
       * @return The count of timeSecondValues.
       */
      public int getTimeSecondValuesCount() {
        return timeSecondValues_.size();
      }
      /**
       * <code>repeated int64 time_second_values = 20;</code>
       * @param index The index of the element to return.
       * @return The timeSecondValues at the given index.
       */
      public long getTimeSecondValues(int index) {
        return timeSecondValues_.getLong(index);
      }
      private int timeSecondValuesMemoizedSerializedSize = -1;

      public static final int TIME_MILLISECOND_VALUES_FIELD_NUMBER = 21;
      private com.google.protobuf.Internal.LongList timeMillisecondValues_;
      /**
       * <code>repeated int64 time_millisecond_values = 21;</code>
       * @return A list containing the timeMillisecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimeMillisecondValuesList() {
        return timeMillisecondValues_;
      }
      /**
       * <code>repeated int64 time_millisecond_values = 21;</code>
       * @return The count of timeMillisecondValues.
       */
      public int getTimeMillisecondValuesCount() {
        return timeMillisecondValues_.size();
      }
      /**
       * <code>repeated int64 time_millisecond_values = 21;</code>
       * @param index The index of the element to return.
       * @return The timeMillisecondValues at the given index.
       */
      public long getTimeMillisecondValues(int index) {
        return timeMillisecondValues_.getLong(index);
      }
      private int timeMillisecondValuesMemoizedSerializedSize = -1;

      public static final int TIME_MICROSECOND_VALUES_FIELD_NUMBER = 22;
      private com.google.protobuf.Internal.LongList timeMicrosecondValues_;
      /**
       * <code>repeated int64 time_microsecond_values = 22;</code>
       * @return A list containing the timeMicrosecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimeMicrosecondValuesList() {
        return timeMicrosecondValues_;
      }
      /**
       * <code>repeated int64 time_microsecond_values = 22;</code>
       * @return The count of timeMicrosecondValues.
       */
      public int getTimeMicrosecondValuesCount() {
        return timeMicrosecondValues_.size();
      }
      /**
       * <code>repeated int64 time_microsecond_values = 22;</code>
       * @param index The index of the element to return.
       * @return The timeMicrosecondValues at the given index.
       */
      public long getTimeMicrosecondValues(int index) {
        return timeMicrosecondValues_.getLong(index);
      }
      private int timeMicrosecondValuesMemoizedSerializedSize = -1;

      public static final int TIME_NANOSECOND_VALUES_FIELD_NUMBER = 23;
      private com.google.protobuf.Internal.LongList timeNanosecondValues_;
      /**
       * <code>repeated int64 time_nanosecond_values = 23;</code>
       * @return A list containing the timeNanosecondValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getTimeNanosecondValuesList() {
        return timeNanosecondValues_;
      }
      /**
       * <code>repeated int64 time_nanosecond_values = 23;</code>
       * @return The count of timeNanosecondValues.
       */
      public int getTimeNanosecondValuesCount() {
        return timeNanosecondValues_.size();
      }
      /**
       * <code>repeated int64 time_nanosecond_values = 23;</code>
       * @param index The index of the element to return.
       * @return The timeNanosecondValues at the given index.
       */
      public long getTimeNanosecondValues(int index) {
        return timeNanosecondValues_.getLong(index);
      }
      private int timeNanosecondValuesMemoizedSerializedSize = -1;

      public static final int INTERVAL_YEAR_MONTH_VALUES_FIELD_NUMBER = 24;
      private com.google.protobuf.Internal.IntList intervalYearMonthValues_;
      /**
       * <code>repeated int32 interval_year_month_values = 24;</code>
       * @return A list containing the intervalYearMonthValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getIntervalYearMonthValuesList() {
        return intervalYearMonthValues_;
      }
      /**
       * <code>repeated int32 interval_year_month_values = 24;</code>
       * @return The count of intervalYearMonthValues.
       */
      public int getIntervalYearMonthValuesCount() {
        return intervalYearMonthValues_.size();
      }
      /**
       * <code>repeated int32 interval_year_month_values = 24;</code>
       * @param index The index of the element to return.
       * @return The intervalYearMonthValues at the given index.
       */
      public int getIntervalYearMonthValues(int index) {
        return intervalYearMonthValues_.getInt(index);
      }
      private int intervalYearMonthValuesMemoizedSerializedSize = -1;

      public static final int INTERVAL_DAY_TIME_VALUES_FIELD_NUMBER = 25;
      private com.google.protobuf.Internal.LongList intervalDayTimeValues_;
      /**
       * <code>repeated int64 interval_day_time_values = 25;</code>
       * @return A list containing the intervalDayTimeValues.
       */
      @java.lang.Override
      public java.util.List<java.lang.Long>
          getIntervalDayTimeValuesList() {
        return intervalDayTimeValues_;
      }
      /**
       * <code>repeated int64 interval_day_time_values = 25;</code>
       * @return The count of intervalDayTimeValues.
       */
      public int getIntervalDayTimeValuesCount() {
        return intervalDayTimeValues_.size();
      }
      /**
       * <code>repeated int64 interval_day_time_values = 25;</code>
       * @param index The index of the element to return.
       * @return The intervalDayTimeValues at the given index.
       */
      public long getIntervalDayTimeValues(int index) {
        return intervalDayTimeValues_.getLong(index);
      }
      private int intervalDayTimeValuesMemoizedSerializedSize = -1;

      public static final int INTERVAL_MONTH_DAY_NANO_VALUES_FIELD_NUMBER = 26;
      private java.util.List<io.greptime.v1.Common.IntervalMonthDayNano> intervalMonthDayNanoValues_;
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      @java.lang.Override
      public java.util.List<io.greptime.v1.Common.IntervalMonthDayNano> getIntervalMonthDayNanoValuesList() {
        return intervalMonthDayNanoValues_;
      }
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      @java.lang.Override
      public java.util.List<? extends io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> 
          getIntervalMonthDayNanoValuesOrBuilderList() {
        return intervalMonthDayNanoValues_;
      }
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      @java.lang.Override
      public int getIntervalMonthDayNanoValuesCount() {
        return intervalMonthDayNanoValues_.size();
      }
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.IntervalMonthDayNano getIntervalMonthDayNanoValues(int index) {
        return intervalMonthDayNanoValues_.get(index);
      }
      /**
       * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder getIntervalMonthDayNanoValuesOrBuilder(
          int index) {
        return intervalMonthDayNanoValues_.get(index);
      }

      public static final int DECIMAL128_VALUES_FIELD_NUMBER = 31;
      private java.util.List<io.greptime.v1.Common.Decimal128> decimal128Values_;
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      @java.lang.Override
      public java.util.List<io.greptime.v1.Common.Decimal128> getDecimal128ValuesList() {
        return decimal128Values_;
      }
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      @java.lang.Override
      public java.util.List<? extends io.greptime.v1.Common.Decimal128OrBuilder> 
          getDecimal128ValuesOrBuilderList() {
        return decimal128Values_;
      }
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      @java.lang.Override
      public int getDecimal128ValuesCount() {
        return decimal128Values_.size();
      }
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.Decimal128 getDecimal128Values(int index) {
        return decimal128Values_.get(index);
      }
      /**
       * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Common.Decimal128OrBuilder getDecimal128ValuesOrBuilder(
          int index) {
        return decimal128Values_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (getI8ValuesList().size() > 0) {
          output.writeUInt32NoTag(10);
          output.writeUInt32NoTag(i8ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < i8Values_.size(); i++) {
          output.writeInt32NoTag(i8Values_.getInt(i));
        }
        if (getI16ValuesList().size() > 0) {
          output.writeUInt32NoTag(18);
          output.writeUInt32NoTag(i16ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < i16Values_.size(); i++) {
          output.writeInt32NoTag(i16Values_.getInt(i));
        }
        if (getI32ValuesList().size() > 0) {
          output.writeUInt32NoTag(26);
          output.writeUInt32NoTag(i32ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < i32Values_.size(); i++) {
          output.writeInt32NoTag(i32Values_.getInt(i));
        }
        if (getI64ValuesList().size() > 0) {
          output.writeUInt32NoTag(34);
          output.writeUInt32NoTag(i64ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < i64Values_.size(); i++) {
          output.writeInt64NoTag(i64Values_.getLong(i));
        }
        if (getU8ValuesList().size() > 0) {
          output.writeUInt32NoTag(42);
          output.writeUInt32NoTag(u8ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < u8Values_.size(); i++) {
          output.writeUInt32NoTag(u8Values_.getInt(i));
        }
        if (getU16ValuesList().size() > 0) {
          output.writeUInt32NoTag(50);
          output.writeUInt32NoTag(u16ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < u16Values_.size(); i++) {
          output.writeUInt32NoTag(u16Values_.getInt(i));
        }
        if (getU32ValuesList().size() > 0) {
          output.writeUInt32NoTag(58);
          output.writeUInt32NoTag(u32ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < u32Values_.size(); i++) {
          output.writeUInt32NoTag(u32Values_.getInt(i));
        }
        if (getU64ValuesList().size() > 0) {
          output.writeUInt32NoTag(66);
          output.writeUInt32NoTag(u64ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < u64Values_.size(); i++) {
          output.writeUInt64NoTag(u64Values_.getLong(i));
        }
        if (getF32ValuesList().size() > 0) {
          output.writeUInt32NoTag(74);
          output.writeUInt32NoTag(f32ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < f32Values_.size(); i++) {
          output.writeFloatNoTag(f32Values_.getFloat(i));
        }
        if (getF64ValuesList().size() > 0) {
          output.writeUInt32NoTag(82);
          output.writeUInt32NoTag(f64ValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < f64Values_.size(); i++) {
          output.writeDoubleNoTag(f64Values_.getDouble(i));
        }
        if (getBoolValuesList().size() > 0) {
          output.writeUInt32NoTag(90);
          output.writeUInt32NoTag(boolValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < boolValues_.size(); i++) {
          output.writeBoolNoTag(boolValues_.getBoolean(i));
        }
        for (int i = 0; i < binaryValues_.size(); i++) {
          output.writeBytes(12, binaryValues_.get(i));
        }
        for (int i = 0; i < stringValues_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 13, stringValues_.getRaw(i));
        }
        if (getDateValuesList().size() > 0) {
          output.writeUInt32NoTag(114);
          output.writeUInt32NoTag(dateValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < dateValues_.size(); i++) {
          output.writeInt32NoTag(dateValues_.getInt(i));
        }
        if (getDatetimeValuesList().size() > 0) {
          output.writeUInt32NoTag(122);
          output.writeUInt32NoTag(datetimeValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < datetimeValues_.size(); i++) {
          output.writeInt64NoTag(datetimeValues_.getLong(i));
        }
        if (getTimestampSecondValuesList().size() > 0) {
          output.writeUInt32NoTag(130);
          output.writeUInt32NoTag(timestampSecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timestampSecondValues_.size(); i++) {
          output.writeInt64NoTag(timestampSecondValues_.getLong(i));
        }
        if (getTimestampMillisecondValuesList().size() > 0) {
          output.writeUInt32NoTag(138);
          output.writeUInt32NoTag(timestampMillisecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timestampMillisecondValues_.size(); i++) {
          output.writeInt64NoTag(timestampMillisecondValues_.getLong(i));
        }
        if (getTimestampMicrosecondValuesList().size() > 0) {
          output.writeUInt32NoTag(146);
          output.writeUInt32NoTag(timestampMicrosecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timestampMicrosecondValues_.size(); i++) {
          output.writeInt64NoTag(timestampMicrosecondValues_.getLong(i));
        }
        if (getTimestampNanosecondValuesList().size() > 0) {
          output.writeUInt32NoTag(154);
          output.writeUInt32NoTag(timestampNanosecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timestampNanosecondValues_.size(); i++) {
          output.writeInt64NoTag(timestampNanosecondValues_.getLong(i));
        }
        if (getTimeSecondValuesList().size() > 0) {
          output.writeUInt32NoTag(162);
          output.writeUInt32NoTag(timeSecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timeSecondValues_.size(); i++) {
          output.writeInt64NoTag(timeSecondValues_.getLong(i));
        }
        if (getTimeMillisecondValuesList().size() > 0) {
          output.writeUInt32NoTag(170);
          output.writeUInt32NoTag(timeMillisecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timeMillisecondValues_.size(); i++) {
          output.writeInt64NoTag(timeMillisecondValues_.getLong(i));
        }
        if (getTimeMicrosecondValuesList().size() > 0) {
          output.writeUInt32NoTag(178);
          output.writeUInt32NoTag(timeMicrosecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timeMicrosecondValues_.size(); i++) {
          output.writeInt64NoTag(timeMicrosecondValues_.getLong(i));
        }
        if (getTimeNanosecondValuesList().size() > 0) {
          output.writeUInt32NoTag(186);
          output.writeUInt32NoTag(timeNanosecondValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < timeNanosecondValues_.size(); i++) {
          output.writeInt64NoTag(timeNanosecondValues_.getLong(i));
        }
        if (getIntervalYearMonthValuesList().size() > 0) {
          output.writeUInt32NoTag(194);
          output.writeUInt32NoTag(intervalYearMonthValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < intervalYearMonthValues_.size(); i++) {
          output.writeInt32NoTag(intervalYearMonthValues_.getInt(i));
        }
        if (getIntervalDayTimeValuesList().size() > 0) {
          output.writeUInt32NoTag(202);
          output.writeUInt32NoTag(intervalDayTimeValuesMemoizedSerializedSize);
        }
        for (int i = 0; i < intervalDayTimeValues_.size(); i++) {
          output.writeInt64NoTag(intervalDayTimeValues_.getLong(i));
        }
        for (int i = 0; i < intervalMonthDayNanoValues_.size(); i++) {
          output.writeMessage(26, intervalMonthDayNanoValues_.get(i));
        }
        for (int i = 0; i < decimal128Values_.size(); i++) {
          output.writeMessage(31, decimal128Values_.get(i));
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < i8Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(i8Values_.getInt(i));
          }
          size += dataSize;
          if (!getI8ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          i8ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < i16Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(i16Values_.getInt(i));
          }
          size += dataSize;
          if (!getI16ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          i16ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < i32Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(i32Values_.getInt(i));
          }
          size += dataSize;
          if (!getI32ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          i32ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < i64Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(i64Values_.getLong(i));
          }
          size += dataSize;
          if (!getI64ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          i64ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < u8Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeUInt32SizeNoTag(u8Values_.getInt(i));
          }
          size += dataSize;
          if (!getU8ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          u8ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < u16Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeUInt32SizeNoTag(u16Values_.getInt(i));
          }
          size += dataSize;
          if (!getU16ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          u16ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < u32Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeUInt32SizeNoTag(u32Values_.getInt(i));
          }
          size += dataSize;
          if (!getU32ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          u32ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < u64Values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeUInt64SizeNoTag(u64Values_.getLong(i));
          }
          size += dataSize;
          if (!getU64ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          u64ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          dataSize = 4 * getF32ValuesList().size();
          size += dataSize;
          if (!getF32ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          f32ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          dataSize = 8 * getF64ValuesList().size();
          size += dataSize;
          if (!getF64ValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          f64ValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          dataSize = 1 * getBoolValuesList().size();
          size += dataSize;
          if (!getBoolValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          boolValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < binaryValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeBytesSizeNoTag(binaryValues_.get(i));
          }
          size += dataSize;
          size += 1 * getBinaryValuesList().size();
        }
        {
          int dataSize = 0;
          for (int i = 0; i < stringValues_.size(); i++) {
            dataSize += computeStringSizeNoTag(stringValues_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getStringValuesList().size();
        }
        {
          int dataSize = 0;
          for (int i = 0; i < dateValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dateValues_.getInt(i));
          }
          size += dataSize;
          if (!getDateValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          dateValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < datetimeValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(datetimeValues_.getLong(i));
          }
          size += dataSize;
          if (!getDatetimeValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          datetimeValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timestampSecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timestampSecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimestampSecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timestampSecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timestampMillisecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timestampMillisecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimestampMillisecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timestampMillisecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timestampMicrosecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timestampMicrosecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimestampMicrosecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timestampMicrosecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timestampNanosecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timestampNanosecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimestampNanosecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timestampNanosecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timeSecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timeSecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimeSecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timeSecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timeMillisecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timeMillisecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimeMillisecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timeMillisecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timeMicrosecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timeMicrosecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimeMicrosecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timeMicrosecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < timeNanosecondValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(timeNanosecondValues_.getLong(i));
          }
          size += dataSize;
          if (!getTimeNanosecondValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          timeNanosecondValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < intervalYearMonthValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(intervalYearMonthValues_.getInt(i));
          }
          size += dataSize;
          if (!getIntervalYearMonthValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          intervalYearMonthValuesMemoizedSerializedSize = dataSize;
        }
        {
          int dataSize = 0;
          for (int i = 0; i < intervalDayTimeValues_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt64SizeNoTag(intervalDayTimeValues_.getLong(i));
          }
          size += dataSize;
          if (!getIntervalDayTimeValuesList().isEmpty()) {
            size += 2;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          intervalDayTimeValuesMemoizedSerializedSize = dataSize;
        }
        for (int i = 0; i < intervalMonthDayNanoValues_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(26, intervalMonthDayNanoValues_.get(i));
        }
        for (int i = 0; i < decimal128Values_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(31, decimal128Values_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof io.greptime.v1.Columns.Column.Values)) {
          return super.equals(obj);
        }
        io.greptime.v1.Columns.Column.Values other = (io.greptime.v1.Columns.Column.Values) obj;

        if (!getI8ValuesList()
            .equals(other.getI8ValuesList())) return false;
        if (!getI16ValuesList()
            .equals(other.getI16ValuesList())) return false;
        if (!getI32ValuesList()
            .equals(other.getI32ValuesList())) return false;
        if (!getI64ValuesList()
            .equals(other.getI64ValuesList())) return false;
        if (!getU8ValuesList()
            .equals(other.getU8ValuesList())) return false;
        if (!getU16ValuesList()
            .equals(other.getU16ValuesList())) return false;
        if (!getU32ValuesList()
            .equals(other.getU32ValuesList())) return false;
        if (!getU64ValuesList()
            .equals(other.getU64ValuesList())) return false;
        if (!getF32ValuesList()
            .equals(other.getF32ValuesList())) return false;
        if (!getF64ValuesList()
            .equals(other.getF64ValuesList())) return false;
        if (!getBoolValuesList()
            .equals(other.getBoolValuesList())) return false;
        if (!getBinaryValuesList()
            .equals(other.getBinaryValuesList())) return false;
        if (!getStringValuesList()
            .equals(other.getStringValuesList())) return false;
        if (!getDateValuesList()
            .equals(other.getDateValuesList())) return false;
        if (!getDatetimeValuesList()
            .equals(other.getDatetimeValuesList())) return false;
        if (!getTimestampSecondValuesList()
            .equals(other.getTimestampSecondValuesList())) return false;
        if (!getTimestampMillisecondValuesList()
            .equals(other.getTimestampMillisecondValuesList())) return false;
        if (!getTimestampMicrosecondValuesList()
            .equals(other.getTimestampMicrosecondValuesList())) return false;
        if (!getTimestampNanosecondValuesList()
            .equals(other.getTimestampNanosecondValuesList())) return false;
        if (!getTimeSecondValuesList()
            .equals(other.getTimeSecondValuesList())) return false;
        if (!getTimeMillisecondValuesList()
            .equals(other.getTimeMillisecondValuesList())) return false;
        if (!getTimeMicrosecondValuesList()
            .equals(other.getTimeMicrosecondValuesList())) return false;
        if (!getTimeNanosecondValuesList()
            .equals(other.getTimeNanosecondValuesList())) return false;
        if (!getIntervalYearMonthValuesList()
            .equals(other.getIntervalYearMonthValuesList())) return false;
        if (!getIntervalDayTimeValuesList()
            .equals(other.getIntervalDayTimeValuesList())) return false;
        if (!getIntervalMonthDayNanoValuesList()
            .equals(other.getIntervalMonthDayNanoValuesList())) return false;
        if (!getDecimal128ValuesList()
            .equals(other.getDecimal128ValuesList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getI8ValuesCount() > 0) {
          hash = (37 * hash) + I8_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getI8ValuesList().hashCode();
        }
        if (getI16ValuesCount() > 0) {
          hash = (37 * hash) + I16_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getI16ValuesList().hashCode();
        }
        if (getI32ValuesCount() > 0) {
          hash = (37 * hash) + I32_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getI32ValuesList().hashCode();
        }
        if (getI64ValuesCount() > 0) {
          hash = (37 * hash) + I64_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getI64ValuesList().hashCode();
        }
        if (getU8ValuesCount() > 0) {
          hash = (37 * hash) + U8_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getU8ValuesList().hashCode();
        }
        if (getU16ValuesCount() > 0) {
          hash = (37 * hash) + U16_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getU16ValuesList().hashCode();
        }
        if (getU32ValuesCount() > 0) {
          hash = (37 * hash) + U32_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getU32ValuesList().hashCode();
        }
        if (getU64ValuesCount() > 0) {
          hash = (37 * hash) + U64_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getU64ValuesList().hashCode();
        }
        if (getF32ValuesCount() > 0) {
          hash = (37 * hash) + F32_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getF32ValuesList().hashCode();
        }
        if (getF64ValuesCount() > 0) {
          hash = (37 * hash) + F64_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getF64ValuesList().hashCode();
        }
        if (getBoolValuesCount() > 0) {
          hash = (37 * hash) + BOOL_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getBoolValuesList().hashCode();
        }
        if (getBinaryValuesCount() > 0) {
          hash = (37 * hash) + BINARY_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getBinaryValuesList().hashCode();
        }
        if (getStringValuesCount() > 0) {
          hash = (37 * hash) + STRING_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getStringValuesList().hashCode();
        }
        if (getDateValuesCount() > 0) {
          hash = (37 * hash) + DATE_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getDateValuesList().hashCode();
        }
        if (getDatetimeValuesCount() > 0) {
          hash = (37 * hash) + DATETIME_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getDatetimeValuesList().hashCode();
        }
        if (getTimestampSecondValuesCount() > 0) {
          hash = (37 * hash) + TIMESTAMP_SECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimestampSecondValuesList().hashCode();
        }
        if (getTimestampMillisecondValuesCount() > 0) {
          hash = (37 * hash) + TIMESTAMP_MILLISECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimestampMillisecondValuesList().hashCode();
        }
        if (getTimestampMicrosecondValuesCount() > 0) {
          hash = (37 * hash) + TIMESTAMP_MICROSECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimestampMicrosecondValuesList().hashCode();
        }
        if (getTimestampNanosecondValuesCount() > 0) {
          hash = (37 * hash) + TIMESTAMP_NANOSECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimestampNanosecondValuesList().hashCode();
        }
        if (getTimeSecondValuesCount() > 0) {
          hash = (37 * hash) + TIME_SECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimeSecondValuesList().hashCode();
        }
        if (getTimeMillisecondValuesCount() > 0) {
          hash = (37 * hash) + TIME_MILLISECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimeMillisecondValuesList().hashCode();
        }
        if (getTimeMicrosecondValuesCount() > 0) {
          hash = (37 * hash) + TIME_MICROSECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimeMicrosecondValuesList().hashCode();
        }
        if (getTimeNanosecondValuesCount() > 0) {
          hash = (37 * hash) + TIME_NANOSECOND_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimeNanosecondValuesList().hashCode();
        }
        if (getIntervalYearMonthValuesCount() > 0) {
          hash = (37 * hash) + INTERVAL_YEAR_MONTH_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getIntervalYearMonthValuesList().hashCode();
        }
        if (getIntervalDayTimeValuesCount() > 0) {
          hash = (37 * hash) + INTERVAL_DAY_TIME_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getIntervalDayTimeValuesList().hashCode();
        }
        if (getIntervalMonthDayNanoValuesCount() > 0) {
          hash = (37 * hash) + INTERVAL_MONTH_DAY_NANO_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getIntervalMonthDayNanoValuesList().hashCode();
        }
        if (getDecimal128ValuesCount() > 0) {
          hash = (37 * hash) + DECIMAL128_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getDecimal128ValuesList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static io.greptime.v1.Columns.Column.Values parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static io.greptime.v1.Columns.Column.Values parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static io.greptime.v1.Columns.Column.Values parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.greptime.v1.Columns.Column.Values parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(io.greptime.v1.Columns.Column.Values prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code greptime.v1.Column.Values}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:greptime.v1.Column.Values)
          io.greptime.v1.Columns.Column.ValuesOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return io.greptime.v1.Columns.internal_static_greptime_v1_Column_Values_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return io.greptime.v1.Columns.internal_static_greptime_v1_Column_Values_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  io.greptime.v1.Columns.Column.Values.class, io.greptime.v1.Columns.Column.Values.Builder.class);
        }

        // Construct using io.greptime.v1.Columns.Column.Values.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getIntervalMonthDayNanoValuesFieldBuilder();
            getDecimal128ValuesFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          i8Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000001);
          i16Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000002);
          i32Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000004);
          i64Values_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00000008);
          u8Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000010);
          u16Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000020);
          u32Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000040);
          u64Values_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00000080);
          f32Values_ = emptyFloatList();
          bitField0_ = (bitField0_ & ~0x00000100);
          f64Values_ = emptyDoubleList();
          bitField0_ = (bitField0_ & ~0x00000200);
          boolValues_ = emptyBooleanList();
          bitField0_ = (bitField0_ & ~0x00000400);
          binaryValues_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000800);
          stringValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00001000);
          dateValues_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00002000);
          datetimeValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00004000);
          timestampSecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00008000);
          timestampMillisecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00010000);
          timestampMicrosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00020000);
          timestampNanosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00040000);
          timeSecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00080000);
          timeMillisecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00100000);
          timeMicrosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00200000);
          timeNanosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00400000);
          intervalYearMonthValues_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00800000);
          intervalDayTimeValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x01000000);
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            intervalMonthDayNanoValues_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x02000000);
          } else {
            intervalMonthDayNanoValuesBuilder_.clear();
          }
          if (decimal128ValuesBuilder_ == null) {
            decimal128Values_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x04000000);
          } else {
            decimal128ValuesBuilder_.clear();
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return io.greptime.v1.Columns.internal_static_greptime_v1_Column_Values_descriptor;
        }

        @java.lang.Override
        public io.greptime.v1.Columns.Column.Values getDefaultInstanceForType() {
          return io.greptime.v1.Columns.Column.Values.getDefaultInstance();
        }

        @java.lang.Override
        public io.greptime.v1.Columns.Column.Values build() {
          io.greptime.v1.Columns.Column.Values result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public io.greptime.v1.Columns.Column.Values buildPartial() {
          io.greptime.v1.Columns.Column.Values result = new io.greptime.v1.Columns.Column.Values(this);
          int from_bitField0_ = bitField0_;
          if (((bitField0_ & 0x00000001) != 0)) {
            i8Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.i8Values_ = i8Values_;
          if (((bitField0_ & 0x00000002) != 0)) {
            i16Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.i16Values_ = i16Values_;
          if (((bitField0_ & 0x00000004) != 0)) {
            i32Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.i32Values_ = i32Values_;
          if (((bitField0_ & 0x00000008) != 0)) {
            i64Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.i64Values_ = i64Values_;
          if (((bitField0_ & 0x00000010) != 0)) {
            u8Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.u8Values_ = u8Values_;
          if (((bitField0_ & 0x00000020) != 0)) {
            u16Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.u16Values_ = u16Values_;
          if (((bitField0_ & 0x00000040) != 0)) {
            u32Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.u32Values_ = u32Values_;
          if (((bitField0_ & 0x00000080) != 0)) {
            u64Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.u64Values_ = u64Values_;
          if (((bitField0_ & 0x00000100) != 0)) {
            f32Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.f32Values_ = f32Values_;
          if (((bitField0_ & 0x00000200) != 0)) {
            f64Values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.f64Values_ = f64Values_;
          if (((bitField0_ & 0x00000400) != 0)) {
            boolValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.boolValues_ = boolValues_;
          if (((bitField0_ & 0x00000800) != 0)) {
            binaryValues_ = java.util.Collections.unmodifiableList(binaryValues_);
            bitField0_ = (bitField0_ & ~0x00000800);
          }
          result.binaryValues_ = binaryValues_;
          if (((bitField0_ & 0x00001000) != 0)) {
            stringValues_ = stringValues_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00001000);
          }
          result.stringValues_ = stringValues_;
          if (((bitField0_ & 0x00002000) != 0)) {
            dateValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.dateValues_ = dateValues_;
          if (((bitField0_ & 0x00004000) != 0)) {
            datetimeValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00004000);
          }
          result.datetimeValues_ = datetimeValues_;
          if (((bitField0_ & 0x00008000) != 0)) {
            timestampSecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00008000);
          }
          result.timestampSecondValues_ = timestampSecondValues_;
          if (((bitField0_ & 0x00010000) != 0)) {
            timestampMillisecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00010000);
          }
          result.timestampMillisecondValues_ = timestampMillisecondValues_;
          if (((bitField0_ & 0x00020000) != 0)) {
            timestampMicrosecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00020000);
          }
          result.timestampMicrosecondValues_ = timestampMicrosecondValues_;
          if (((bitField0_ & 0x00040000) != 0)) {
            timestampNanosecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00040000);
          }
          result.timestampNanosecondValues_ = timestampNanosecondValues_;
          if (((bitField0_ & 0x00080000) != 0)) {
            timeSecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00080000);
          }
          result.timeSecondValues_ = timeSecondValues_;
          if (((bitField0_ & 0x00100000) != 0)) {
            timeMillisecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00100000);
          }
          result.timeMillisecondValues_ = timeMillisecondValues_;
          if (((bitField0_ & 0x00200000) != 0)) {
            timeMicrosecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00200000);
          }
          result.timeMicrosecondValues_ = timeMicrosecondValues_;
          if (((bitField0_ & 0x00400000) != 0)) {
            timeNanosecondValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00400000);
          }
          result.timeNanosecondValues_ = timeNanosecondValues_;
          if (((bitField0_ & 0x00800000) != 0)) {
            intervalYearMonthValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00800000);
          }
          result.intervalYearMonthValues_ = intervalYearMonthValues_;
          if (((bitField0_ & 0x01000000) != 0)) {
            intervalDayTimeValues_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x01000000);
          }
          result.intervalDayTimeValues_ = intervalDayTimeValues_;
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            if (((bitField0_ & 0x02000000) != 0)) {
              intervalMonthDayNanoValues_ = java.util.Collections.unmodifiableList(intervalMonthDayNanoValues_);
              bitField0_ = (bitField0_ & ~0x02000000);
            }
            result.intervalMonthDayNanoValues_ = intervalMonthDayNanoValues_;
          } else {
            result.intervalMonthDayNanoValues_ = intervalMonthDayNanoValuesBuilder_.build();
          }
          if (decimal128ValuesBuilder_ == null) {
            if (((bitField0_ & 0x04000000) != 0)) {
              decimal128Values_ = java.util.Collections.unmodifiableList(decimal128Values_);
              bitField0_ = (bitField0_ & ~0x04000000);
            }
            result.decimal128Values_ = decimal128Values_;
          } else {
            result.decimal128Values_ = decimal128ValuesBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof io.greptime.v1.Columns.Column.Values) {
            return mergeFrom((io.greptime.v1.Columns.Column.Values)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(io.greptime.v1.Columns.Column.Values other) {
          if (other == io.greptime.v1.Columns.Column.Values.getDefaultInstance()) return this;
          if (!other.i8Values_.isEmpty()) {
            if (i8Values_.isEmpty()) {
              i8Values_ = other.i8Values_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureI8ValuesIsMutable();
              i8Values_.addAll(other.i8Values_);
            }
            onChanged();
          }
          if (!other.i16Values_.isEmpty()) {
            if (i16Values_.isEmpty()) {
              i16Values_ = other.i16Values_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureI16ValuesIsMutable();
              i16Values_.addAll(other.i16Values_);
            }
            onChanged();
          }
          if (!other.i32Values_.isEmpty()) {
            if (i32Values_.isEmpty()) {
              i32Values_ = other.i32Values_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureI32ValuesIsMutable();
              i32Values_.addAll(other.i32Values_);
            }
            onChanged();
          }
          if (!other.i64Values_.isEmpty()) {
            if (i64Values_.isEmpty()) {
              i64Values_ = other.i64Values_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureI64ValuesIsMutable();
              i64Values_.addAll(other.i64Values_);
            }
            onChanged();
          }
          if (!other.u8Values_.isEmpty()) {
            if (u8Values_.isEmpty()) {
              u8Values_ = other.u8Values_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureU8ValuesIsMutable();
              u8Values_.addAll(other.u8Values_);
            }
            onChanged();
          }
          if (!other.u16Values_.isEmpty()) {
            if (u16Values_.isEmpty()) {
              u16Values_ = other.u16Values_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureU16ValuesIsMutable();
              u16Values_.addAll(other.u16Values_);
            }
            onChanged();
          }
          if (!other.u32Values_.isEmpty()) {
            if (u32Values_.isEmpty()) {
              u32Values_ = other.u32Values_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureU32ValuesIsMutable();
              u32Values_.addAll(other.u32Values_);
            }
            onChanged();
          }
          if (!other.u64Values_.isEmpty()) {
            if (u64Values_.isEmpty()) {
              u64Values_ = other.u64Values_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureU64ValuesIsMutable();
              u64Values_.addAll(other.u64Values_);
            }
            onChanged();
          }
          if (!other.f32Values_.isEmpty()) {
            if (f32Values_.isEmpty()) {
              f32Values_ = other.f32Values_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureF32ValuesIsMutable();
              f32Values_.addAll(other.f32Values_);
            }
            onChanged();
          }
          if (!other.f64Values_.isEmpty()) {
            if (f64Values_.isEmpty()) {
              f64Values_ = other.f64Values_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureF64ValuesIsMutable();
              f64Values_.addAll(other.f64Values_);
            }
            onChanged();
          }
          if (!other.boolValues_.isEmpty()) {
            if (boolValues_.isEmpty()) {
              boolValues_ = other.boolValues_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureBoolValuesIsMutable();
              boolValues_.addAll(other.boolValues_);
            }
            onChanged();
          }
          if (!other.binaryValues_.isEmpty()) {
            if (binaryValues_.isEmpty()) {
              binaryValues_ = other.binaryValues_;
              bitField0_ = (bitField0_ & ~0x00000800);
            } else {
              ensureBinaryValuesIsMutable();
              binaryValues_.addAll(other.binaryValues_);
            }
            onChanged();
          }
          if (!other.stringValues_.isEmpty()) {
            if (stringValues_.isEmpty()) {
              stringValues_ = other.stringValues_;
              bitField0_ = (bitField0_ & ~0x00001000);
            } else {
              ensureStringValuesIsMutable();
              stringValues_.addAll(other.stringValues_);
            }
            onChanged();
          }
          if (!other.dateValues_.isEmpty()) {
            if (dateValues_.isEmpty()) {
              dateValues_ = other.dateValues_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureDateValuesIsMutable();
              dateValues_.addAll(other.dateValues_);
            }
            onChanged();
          }
          if (!other.datetimeValues_.isEmpty()) {
            if (datetimeValues_.isEmpty()) {
              datetimeValues_ = other.datetimeValues_;
              bitField0_ = (bitField0_ & ~0x00004000);
            } else {
              ensureDatetimeValuesIsMutable();
              datetimeValues_.addAll(other.datetimeValues_);
            }
            onChanged();
          }
          if (!other.timestampSecondValues_.isEmpty()) {
            if (timestampSecondValues_.isEmpty()) {
              timestampSecondValues_ = other.timestampSecondValues_;
              bitField0_ = (bitField0_ & ~0x00008000);
            } else {
              ensureTimestampSecondValuesIsMutable();
              timestampSecondValues_.addAll(other.timestampSecondValues_);
            }
            onChanged();
          }
          if (!other.timestampMillisecondValues_.isEmpty()) {
            if (timestampMillisecondValues_.isEmpty()) {
              timestampMillisecondValues_ = other.timestampMillisecondValues_;
              bitField0_ = (bitField0_ & ~0x00010000);
            } else {
              ensureTimestampMillisecondValuesIsMutable();
              timestampMillisecondValues_.addAll(other.timestampMillisecondValues_);
            }
            onChanged();
          }
          if (!other.timestampMicrosecondValues_.isEmpty()) {
            if (timestampMicrosecondValues_.isEmpty()) {
              timestampMicrosecondValues_ = other.timestampMicrosecondValues_;
              bitField0_ = (bitField0_ & ~0x00020000);
            } else {
              ensureTimestampMicrosecondValuesIsMutable();
              timestampMicrosecondValues_.addAll(other.timestampMicrosecondValues_);
            }
            onChanged();
          }
          if (!other.timestampNanosecondValues_.isEmpty()) {
            if (timestampNanosecondValues_.isEmpty()) {
              timestampNanosecondValues_ = other.timestampNanosecondValues_;
              bitField0_ = (bitField0_ & ~0x00040000);
            } else {
              ensureTimestampNanosecondValuesIsMutable();
              timestampNanosecondValues_.addAll(other.timestampNanosecondValues_);
            }
            onChanged();
          }
          if (!other.timeSecondValues_.isEmpty()) {
            if (timeSecondValues_.isEmpty()) {
              timeSecondValues_ = other.timeSecondValues_;
              bitField0_ = (bitField0_ & ~0x00080000);
            } else {
              ensureTimeSecondValuesIsMutable();
              timeSecondValues_.addAll(other.timeSecondValues_);
            }
            onChanged();
          }
          if (!other.timeMillisecondValues_.isEmpty()) {
            if (timeMillisecondValues_.isEmpty()) {
              timeMillisecondValues_ = other.timeMillisecondValues_;
              bitField0_ = (bitField0_ & ~0x00100000);
            } else {
              ensureTimeMillisecondValuesIsMutable();
              timeMillisecondValues_.addAll(other.timeMillisecondValues_);
            }
            onChanged();
          }
          if (!other.timeMicrosecondValues_.isEmpty()) {
            if (timeMicrosecondValues_.isEmpty()) {
              timeMicrosecondValues_ = other.timeMicrosecondValues_;
              bitField0_ = (bitField0_ & ~0x00200000);
            } else {
              ensureTimeMicrosecondValuesIsMutable();
              timeMicrosecondValues_.addAll(other.timeMicrosecondValues_);
            }
            onChanged();
          }
          if (!other.timeNanosecondValues_.isEmpty()) {
            if (timeNanosecondValues_.isEmpty()) {
              timeNanosecondValues_ = other.timeNanosecondValues_;
              bitField0_ = (bitField0_ & ~0x00400000);
            } else {
              ensureTimeNanosecondValuesIsMutable();
              timeNanosecondValues_.addAll(other.timeNanosecondValues_);
            }
            onChanged();
          }
          if (!other.intervalYearMonthValues_.isEmpty()) {
            if (intervalYearMonthValues_.isEmpty()) {
              intervalYearMonthValues_ = other.intervalYearMonthValues_;
              bitField0_ = (bitField0_ & ~0x00800000);
            } else {
              ensureIntervalYearMonthValuesIsMutable();
              intervalYearMonthValues_.addAll(other.intervalYearMonthValues_);
            }
            onChanged();
          }
          if (!other.intervalDayTimeValues_.isEmpty()) {
            if (intervalDayTimeValues_.isEmpty()) {
              intervalDayTimeValues_ = other.intervalDayTimeValues_;
              bitField0_ = (bitField0_ & ~0x01000000);
            } else {
              ensureIntervalDayTimeValuesIsMutable();
              intervalDayTimeValues_.addAll(other.intervalDayTimeValues_);
            }
            onChanged();
          }
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            if (!other.intervalMonthDayNanoValues_.isEmpty()) {
              if (intervalMonthDayNanoValues_.isEmpty()) {
                intervalMonthDayNanoValues_ = other.intervalMonthDayNanoValues_;
                bitField0_ = (bitField0_ & ~0x02000000);
              } else {
                ensureIntervalMonthDayNanoValuesIsMutable();
                intervalMonthDayNanoValues_.addAll(other.intervalMonthDayNanoValues_);
              }
              onChanged();
            }
          } else {
            if (!other.intervalMonthDayNanoValues_.isEmpty()) {
              if (intervalMonthDayNanoValuesBuilder_.isEmpty()) {
                intervalMonthDayNanoValuesBuilder_.dispose();
                intervalMonthDayNanoValuesBuilder_ = null;
                intervalMonthDayNanoValues_ = other.intervalMonthDayNanoValues_;
                bitField0_ = (bitField0_ & ~0x02000000);
                intervalMonthDayNanoValuesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getIntervalMonthDayNanoValuesFieldBuilder() : null;
              } else {
                intervalMonthDayNanoValuesBuilder_.addAllMessages(other.intervalMonthDayNanoValues_);
              }
            }
          }
          if (decimal128ValuesBuilder_ == null) {
            if (!other.decimal128Values_.isEmpty()) {
              if (decimal128Values_.isEmpty()) {
                decimal128Values_ = other.decimal128Values_;
                bitField0_ = (bitField0_ & ~0x04000000);
              } else {
                ensureDecimal128ValuesIsMutable();
                decimal128Values_.addAll(other.decimal128Values_);
              }
              onChanged();
            }
          } else {
            if (!other.decimal128Values_.isEmpty()) {
              if (decimal128ValuesBuilder_.isEmpty()) {
                decimal128ValuesBuilder_.dispose();
                decimal128ValuesBuilder_ = null;
                decimal128Values_ = other.decimal128Values_;
                bitField0_ = (bitField0_ & ~0x04000000);
                decimal128ValuesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getDecimal128ValuesFieldBuilder() : null;
              } else {
                decimal128ValuesBuilder_.addAllMessages(other.decimal128Values_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          io.greptime.v1.Columns.Column.Values parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (io.greptime.v1.Columns.Column.Values) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private com.google.protobuf.Internal.IntList i8Values_ = emptyIntList();
        private void ensureI8ValuesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            i8Values_ = mutableCopy(i8Values_);
            bitField0_ |= 0x00000001;
           }
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @return A list containing the i8Values.
         */
        public java.util.List<java.lang.Integer>
            getI8ValuesList() {
          return ((bitField0_ & 0x00000001) != 0) ?
                   java.util.Collections.unmodifiableList(i8Values_) : i8Values_;
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @return The count of i8Values.
         */
        public int getI8ValuesCount() {
          return i8Values_.size();
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @param index The index of the element to return.
         * @return The i8Values at the given index.
         */
        public int getI8Values(int index) {
          return i8Values_.getInt(index);
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @param index The index to set the value at.
         * @param value The i8Values to set.
         * @return This builder for chaining.
         */
        public Builder setI8Values(
            int index, int value) {
          ensureI8ValuesIsMutable();
          i8Values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @param value The i8Values to add.
         * @return This builder for chaining.
         */
        public Builder addI8Values(int value) {
          ensureI8ValuesIsMutable();
          i8Values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @param values The i8Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllI8Values(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureI8ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, i8Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i8_values = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearI8Values() {
          i8Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList i16Values_ = emptyIntList();
        private void ensureI16ValuesIsMutable() {
          if (!((bitField0_ & 0x00000002) != 0)) {
            i16Values_ = mutableCopy(i16Values_);
            bitField0_ |= 0x00000002;
           }
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @return A list containing the i16Values.
         */
        public java.util.List<java.lang.Integer>
            getI16ValuesList() {
          return ((bitField0_ & 0x00000002) != 0) ?
                   java.util.Collections.unmodifiableList(i16Values_) : i16Values_;
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @return The count of i16Values.
         */
        public int getI16ValuesCount() {
          return i16Values_.size();
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @param index The index of the element to return.
         * @return The i16Values at the given index.
         */
        public int getI16Values(int index) {
          return i16Values_.getInt(index);
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @param index The index to set the value at.
         * @param value The i16Values to set.
         * @return This builder for chaining.
         */
        public Builder setI16Values(
            int index, int value) {
          ensureI16ValuesIsMutable();
          i16Values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @param value The i16Values to add.
         * @return This builder for chaining.
         */
        public Builder addI16Values(int value) {
          ensureI16ValuesIsMutable();
          i16Values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @param values The i16Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllI16Values(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureI16ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, i16Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i16_values = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearI16Values() {
          i16Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList i32Values_ = emptyIntList();
        private void ensureI32ValuesIsMutable() {
          if (!((bitField0_ & 0x00000004) != 0)) {
            i32Values_ = mutableCopy(i32Values_);
            bitField0_ |= 0x00000004;
           }
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @return A list containing the i32Values.
         */
        public java.util.List<java.lang.Integer>
            getI32ValuesList() {
          return ((bitField0_ & 0x00000004) != 0) ?
                   java.util.Collections.unmodifiableList(i32Values_) : i32Values_;
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @return The count of i32Values.
         */
        public int getI32ValuesCount() {
          return i32Values_.size();
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @param index The index of the element to return.
         * @return The i32Values at the given index.
         */
        public int getI32Values(int index) {
          return i32Values_.getInt(index);
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @param index The index to set the value at.
         * @param value The i32Values to set.
         * @return This builder for chaining.
         */
        public Builder setI32Values(
            int index, int value) {
          ensureI32ValuesIsMutable();
          i32Values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @param value The i32Values to add.
         * @return This builder for chaining.
         */
        public Builder addI32Values(int value) {
          ensureI32ValuesIsMutable();
          i32Values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @param values The i32Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllI32Values(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureI32ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, i32Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 i32_values = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearI32Values() {
          i32Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList i64Values_ = emptyLongList();
        private void ensureI64ValuesIsMutable() {
          if (!((bitField0_ & 0x00000008) != 0)) {
            i64Values_ = mutableCopy(i64Values_);
            bitField0_ |= 0x00000008;
           }
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @return A list containing the i64Values.
         */
        public java.util.List<java.lang.Long>
            getI64ValuesList() {
          return ((bitField0_ & 0x00000008) != 0) ?
                   java.util.Collections.unmodifiableList(i64Values_) : i64Values_;
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @return The count of i64Values.
         */
        public int getI64ValuesCount() {
          return i64Values_.size();
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @param index The index of the element to return.
         * @return The i64Values at the given index.
         */
        public long getI64Values(int index) {
          return i64Values_.getLong(index);
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @param index The index to set the value at.
         * @param value The i64Values to set.
         * @return This builder for chaining.
         */
        public Builder setI64Values(
            int index, long value) {
          ensureI64ValuesIsMutable();
          i64Values_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @param value The i64Values to add.
         * @return This builder for chaining.
         */
        public Builder addI64Values(long value) {
          ensureI64ValuesIsMutable();
          i64Values_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @param values The i64Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllI64Values(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureI64ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, i64Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 i64_values = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearI64Values() {
          i64Values_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList u8Values_ = emptyIntList();
        private void ensureU8ValuesIsMutable() {
          if (!((bitField0_ & 0x00000010) != 0)) {
            u8Values_ = mutableCopy(u8Values_);
            bitField0_ |= 0x00000010;
           }
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @return A list containing the u8Values.
         */
        public java.util.List<java.lang.Integer>
            getU8ValuesList() {
          return ((bitField0_ & 0x00000010) != 0) ?
                   java.util.Collections.unmodifiableList(u8Values_) : u8Values_;
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @return The count of u8Values.
         */
        public int getU8ValuesCount() {
          return u8Values_.size();
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @param index The index of the element to return.
         * @return The u8Values at the given index.
         */
        public int getU8Values(int index) {
          return u8Values_.getInt(index);
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @param index The index to set the value at.
         * @param value The u8Values to set.
         * @return This builder for chaining.
         */
        public Builder setU8Values(
            int index, int value) {
          ensureU8ValuesIsMutable();
          u8Values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @param value The u8Values to add.
         * @return This builder for chaining.
         */
        public Builder addU8Values(int value) {
          ensureU8ValuesIsMutable();
          u8Values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @param values The u8Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllU8Values(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureU8ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, u8Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u8_values = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearU8Values() {
          u8Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList u16Values_ = emptyIntList();
        private void ensureU16ValuesIsMutable() {
          if (!((bitField0_ & 0x00000020) != 0)) {
            u16Values_ = mutableCopy(u16Values_);
            bitField0_ |= 0x00000020;
           }
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @return A list containing the u16Values.
         */
        public java.util.List<java.lang.Integer>
            getU16ValuesList() {
          return ((bitField0_ & 0x00000020) != 0) ?
                   java.util.Collections.unmodifiableList(u16Values_) : u16Values_;
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @return The count of u16Values.
         */
        public int getU16ValuesCount() {
          return u16Values_.size();
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @param index The index of the element to return.
         * @return The u16Values at the given index.
         */
        public int getU16Values(int index) {
          return u16Values_.getInt(index);
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @param index The index to set the value at.
         * @param value The u16Values to set.
         * @return This builder for chaining.
         */
        public Builder setU16Values(
            int index, int value) {
          ensureU16ValuesIsMutable();
          u16Values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @param value The u16Values to add.
         * @return This builder for chaining.
         */
        public Builder addU16Values(int value) {
          ensureU16ValuesIsMutable();
          u16Values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @param values The u16Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllU16Values(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureU16ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, u16Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u16_values = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearU16Values() {
          u16Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList u32Values_ = emptyIntList();
        private void ensureU32ValuesIsMutable() {
          if (!((bitField0_ & 0x00000040) != 0)) {
            u32Values_ = mutableCopy(u32Values_);
            bitField0_ |= 0x00000040;
           }
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @return A list containing the u32Values.
         */
        public java.util.List<java.lang.Integer>
            getU32ValuesList() {
          return ((bitField0_ & 0x00000040) != 0) ?
                   java.util.Collections.unmodifiableList(u32Values_) : u32Values_;
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @return The count of u32Values.
         */
        public int getU32ValuesCount() {
          return u32Values_.size();
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @param index The index of the element to return.
         * @return The u32Values at the given index.
         */
        public int getU32Values(int index) {
          return u32Values_.getInt(index);
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @param index The index to set the value at.
         * @param value The u32Values to set.
         * @return This builder for chaining.
         */
        public Builder setU32Values(
            int index, int value) {
          ensureU32ValuesIsMutable();
          u32Values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @param value The u32Values to add.
         * @return This builder for chaining.
         */
        public Builder addU32Values(int value) {
          ensureU32ValuesIsMutable();
          u32Values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @param values The u32Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllU32Values(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureU32ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, u32Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint32 u32_values = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearU32Values() {
          u32Values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList u64Values_ = emptyLongList();
        private void ensureU64ValuesIsMutable() {
          if (!((bitField0_ & 0x00000080) != 0)) {
            u64Values_ = mutableCopy(u64Values_);
            bitField0_ |= 0x00000080;
           }
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @return A list containing the u64Values.
         */
        public java.util.List<java.lang.Long>
            getU64ValuesList() {
          return ((bitField0_ & 0x00000080) != 0) ?
                   java.util.Collections.unmodifiableList(u64Values_) : u64Values_;
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @return The count of u64Values.
         */
        public int getU64ValuesCount() {
          return u64Values_.size();
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @param index The index of the element to return.
         * @return The u64Values at the given index.
         */
        public long getU64Values(int index) {
          return u64Values_.getLong(index);
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @param index The index to set the value at.
         * @param value The u64Values to set.
         * @return This builder for chaining.
         */
        public Builder setU64Values(
            int index, long value) {
          ensureU64ValuesIsMutable();
          u64Values_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @param value The u64Values to add.
         * @return This builder for chaining.
         */
        public Builder addU64Values(long value) {
          ensureU64ValuesIsMutable();
          u64Values_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @param values The u64Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllU64Values(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureU64ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, u64Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated uint64 u64_values = 8;</code>
         * @return This builder for chaining.
         */
        public Builder clearU64Values() {
          u64Values_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.FloatList f32Values_ = emptyFloatList();
        private void ensureF32ValuesIsMutable() {
          if (!((bitField0_ & 0x00000100) != 0)) {
            f32Values_ = mutableCopy(f32Values_);
            bitField0_ |= 0x00000100;
           }
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @return A list containing the f32Values.
         */
        public java.util.List<java.lang.Float>
            getF32ValuesList() {
          return ((bitField0_ & 0x00000100) != 0) ?
                   java.util.Collections.unmodifiableList(f32Values_) : f32Values_;
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @return The count of f32Values.
         */
        public int getF32ValuesCount() {
          return f32Values_.size();
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @param index The index of the element to return.
         * @return The f32Values at the given index.
         */
        public float getF32Values(int index) {
          return f32Values_.getFloat(index);
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @param index The index to set the value at.
         * @param value The f32Values to set.
         * @return This builder for chaining.
         */
        public Builder setF32Values(
            int index, float value) {
          ensureF32ValuesIsMutable();
          f32Values_.setFloat(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @param value The f32Values to add.
         * @return This builder for chaining.
         */
        public Builder addF32Values(float value) {
          ensureF32ValuesIsMutable();
          f32Values_.addFloat(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @param values The f32Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllF32Values(
            java.lang.Iterable<? extends java.lang.Float> values) {
          ensureF32ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, f32Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated float f32_values = 9;</code>
         * @return This builder for chaining.
         */
        public Builder clearF32Values() {
          f32Values_ = emptyFloatList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.DoubleList f64Values_ = emptyDoubleList();
        private void ensureF64ValuesIsMutable() {
          if (!((bitField0_ & 0x00000200) != 0)) {
            f64Values_ = mutableCopy(f64Values_);
            bitField0_ |= 0x00000200;
           }
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @return A list containing the f64Values.
         */
        public java.util.List<java.lang.Double>
            getF64ValuesList() {
          return ((bitField0_ & 0x00000200) != 0) ?
                   java.util.Collections.unmodifiableList(f64Values_) : f64Values_;
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @return The count of f64Values.
         */
        public int getF64ValuesCount() {
          return f64Values_.size();
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @param index The index of the element to return.
         * @return The f64Values at the given index.
         */
        public double getF64Values(int index) {
          return f64Values_.getDouble(index);
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @param index The index to set the value at.
         * @param value The f64Values to set.
         * @return This builder for chaining.
         */
        public Builder setF64Values(
            int index, double value) {
          ensureF64ValuesIsMutable();
          f64Values_.setDouble(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @param value The f64Values to add.
         * @return This builder for chaining.
         */
        public Builder addF64Values(double value) {
          ensureF64ValuesIsMutable();
          f64Values_.addDouble(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @param values The f64Values to add.
         * @return This builder for chaining.
         */
        public Builder addAllF64Values(
            java.lang.Iterable<? extends java.lang.Double> values) {
          ensureF64ValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, f64Values_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated double f64_values = 10;</code>
         * @return This builder for chaining.
         */
        public Builder clearF64Values() {
          f64Values_ = emptyDoubleList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.BooleanList boolValues_ = emptyBooleanList();
        private void ensureBoolValuesIsMutable() {
          if (!((bitField0_ & 0x00000400) != 0)) {
            boolValues_ = mutableCopy(boolValues_);
            bitField0_ |= 0x00000400;
           }
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @return A list containing the boolValues.
         */
        public java.util.List<java.lang.Boolean>
            getBoolValuesList() {
          return ((bitField0_ & 0x00000400) != 0) ?
                   java.util.Collections.unmodifiableList(boolValues_) : boolValues_;
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @return The count of boolValues.
         */
        public int getBoolValuesCount() {
          return boolValues_.size();
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @param index The index of the element to return.
         * @return The boolValues at the given index.
         */
        public boolean getBoolValues(int index) {
          return boolValues_.getBoolean(index);
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @param index The index to set the value at.
         * @param value The boolValues to set.
         * @return This builder for chaining.
         */
        public Builder setBoolValues(
            int index, boolean value) {
          ensureBoolValuesIsMutable();
          boolValues_.setBoolean(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @param value The boolValues to add.
         * @return This builder for chaining.
         */
        public Builder addBoolValues(boolean value) {
          ensureBoolValuesIsMutable();
          boolValues_.addBoolean(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @param values The boolValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllBoolValues(
            java.lang.Iterable<? extends java.lang.Boolean> values) {
          ensureBoolValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, boolValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated bool bool_values = 11;</code>
         * @return This builder for chaining.
         */
        public Builder clearBoolValues() {
          boolValues_ = emptyBooleanList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
          return this;
        }

        private java.util.List<com.google.protobuf.ByteString> binaryValues_ = java.util.Collections.emptyList();
        private void ensureBinaryValuesIsMutable() {
          if (!((bitField0_ & 0x00000800) != 0)) {
            binaryValues_ = new java.util.ArrayList<com.google.protobuf.ByteString>(binaryValues_);
            bitField0_ |= 0x00000800;
           }
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @return A list containing the binaryValues.
         */
        public java.util.List<com.google.protobuf.ByteString>
            getBinaryValuesList() {
          return ((bitField0_ & 0x00000800) != 0) ?
                   java.util.Collections.unmodifiableList(binaryValues_) : binaryValues_;
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @return The count of binaryValues.
         */
        public int getBinaryValuesCount() {
          return binaryValues_.size();
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @param index The index of the element to return.
         * @return The binaryValues at the given index.
         */
        public com.google.protobuf.ByteString getBinaryValues(int index) {
          return binaryValues_.get(index);
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @param index The index to set the value at.
         * @param value The binaryValues to set.
         * @return This builder for chaining.
         */
        public Builder setBinaryValues(
            int index, com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureBinaryValuesIsMutable();
          binaryValues_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @param value The binaryValues to add.
         * @return This builder for chaining.
         */
        public Builder addBinaryValues(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureBinaryValuesIsMutable();
          binaryValues_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @param values The binaryValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllBinaryValues(
            java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
          ensureBinaryValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, binaryValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated bytes binary_values = 12;</code>
         * @return This builder for chaining.
         */
        public Builder clearBinaryValues() {
          binaryValues_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000800);
          onChanged();
          return this;
        }

        private com.google.protobuf.LazyStringList stringValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensureStringValuesIsMutable() {
          if (!((bitField0_ & 0x00001000) != 0)) {
            stringValues_ = new com.google.protobuf.LazyStringArrayList(stringValues_);
            bitField0_ |= 0x00001000;
           }
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @return A list containing the stringValues.
         */
        public com.google.protobuf.ProtocolStringList
            getStringValuesList() {
          return stringValues_.getUnmodifiableView();
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @return The count of stringValues.
         */
        public int getStringValuesCount() {
          return stringValues_.size();
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @param index The index of the element to return.
         * @return The stringValues at the given index.
         */
        public java.lang.String getStringValues(int index) {
          return stringValues_.get(index);
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @param index The index of the value to return.
         * @return The bytes of the stringValues at the given index.
         */
        public com.google.protobuf.ByteString
            getStringValuesBytes(int index) {
          return stringValues_.getByteString(index);
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @param index The index to set the value at.
         * @param value The stringValues to set.
         * @return This builder for chaining.
         */
        public Builder setStringValues(
            int index, java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureStringValuesIsMutable();
          stringValues_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @param value The stringValues to add.
         * @return This builder for chaining.
         */
        public Builder addStringValues(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  ensureStringValuesIsMutable();
          stringValues_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @param values The stringValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllStringValues(
            java.lang.Iterable<java.lang.String> values) {
          ensureStringValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, stringValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @return This builder for chaining.
         */
        public Builder clearStringValues() {
          stringValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00001000);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string string_values = 13;</code>
         * @param value The bytes of the stringValues to add.
         * @return This builder for chaining.
         */
        public Builder addStringValuesBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          ensureStringValuesIsMutable();
          stringValues_.add(value);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList dateValues_ = emptyIntList();
        private void ensureDateValuesIsMutable() {
          if (!((bitField0_ & 0x00002000) != 0)) {
            dateValues_ = mutableCopy(dateValues_);
            bitField0_ |= 0x00002000;
           }
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @return A list containing the dateValues.
         */
        public java.util.List<java.lang.Integer>
            getDateValuesList() {
          return ((bitField0_ & 0x00002000) != 0) ?
                   java.util.Collections.unmodifiableList(dateValues_) : dateValues_;
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @return The count of dateValues.
         */
        public int getDateValuesCount() {
          return dateValues_.size();
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @param index The index of the element to return.
         * @return The dateValues at the given index.
         */
        public int getDateValues(int index) {
          return dateValues_.getInt(index);
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @param index The index to set the value at.
         * @param value The dateValues to set.
         * @return This builder for chaining.
         */
        public Builder setDateValues(
            int index, int value) {
          ensureDateValuesIsMutable();
          dateValues_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @param value The dateValues to add.
         * @return This builder for chaining.
         */
        public Builder addDateValues(int value) {
          ensureDateValuesIsMutable();
          dateValues_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @param values The dateValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllDateValues(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureDateValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dateValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 date_values = 14;</code>
         * @return This builder for chaining.
         */
        public Builder clearDateValues() {
          dateValues_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList datetimeValues_ = emptyLongList();
        private void ensureDatetimeValuesIsMutable() {
          if (!((bitField0_ & 0x00004000) != 0)) {
            datetimeValues_ = mutableCopy(datetimeValues_);
            bitField0_ |= 0x00004000;
           }
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @return A list containing the datetimeValues.
         */
        public java.util.List<java.lang.Long>
            getDatetimeValuesList() {
          return ((bitField0_ & 0x00004000) != 0) ?
                   java.util.Collections.unmodifiableList(datetimeValues_) : datetimeValues_;
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @return The count of datetimeValues.
         */
        public int getDatetimeValuesCount() {
          return datetimeValues_.size();
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @param index The index of the element to return.
         * @return The datetimeValues at the given index.
         */
        public long getDatetimeValues(int index) {
          return datetimeValues_.getLong(index);
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @param index The index to set the value at.
         * @param value The datetimeValues to set.
         * @return This builder for chaining.
         */
        public Builder setDatetimeValues(
            int index, long value) {
          ensureDatetimeValuesIsMutable();
          datetimeValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @param value The datetimeValues to add.
         * @return This builder for chaining.
         */
        public Builder addDatetimeValues(long value) {
          ensureDatetimeValuesIsMutable();
          datetimeValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @param values The datetimeValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllDatetimeValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureDatetimeValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, datetimeValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 datetime_values = 15;</code>
         * @return This builder for chaining.
         */
        public Builder clearDatetimeValues() {
          datetimeValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00004000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timestampSecondValues_ = emptyLongList();
        private void ensureTimestampSecondValuesIsMutable() {
          if (!((bitField0_ & 0x00008000) != 0)) {
            timestampSecondValues_ = mutableCopy(timestampSecondValues_);
            bitField0_ |= 0x00008000;
           }
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @return A list containing the timestampSecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimestampSecondValuesList() {
          return ((bitField0_ & 0x00008000) != 0) ?
                   java.util.Collections.unmodifiableList(timestampSecondValues_) : timestampSecondValues_;
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @return The count of timestampSecondValues.
         */
        public int getTimestampSecondValuesCount() {
          return timestampSecondValues_.size();
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @param index The index of the element to return.
         * @return The timestampSecondValues at the given index.
         */
        public long getTimestampSecondValues(int index) {
          return timestampSecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @param index The index to set the value at.
         * @param value The timestampSecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimestampSecondValues(
            int index, long value) {
          ensureTimestampSecondValuesIsMutable();
          timestampSecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @param value The timestampSecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimestampSecondValues(long value) {
          ensureTimestampSecondValuesIsMutable();
          timestampSecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @param values The timestampSecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimestampSecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimestampSecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timestampSecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_second_values = 16;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimestampSecondValues() {
          timestampSecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00008000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timestampMillisecondValues_ = emptyLongList();
        private void ensureTimestampMillisecondValuesIsMutable() {
          if (!((bitField0_ & 0x00010000) != 0)) {
            timestampMillisecondValues_ = mutableCopy(timestampMillisecondValues_);
            bitField0_ |= 0x00010000;
           }
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @return A list containing the timestampMillisecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimestampMillisecondValuesList() {
          return ((bitField0_ & 0x00010000) != 0) ?
                   java.util.Collections.unmodifiableList(timestampMillisecondValues_) : timestampMillisecondValues_;
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @return The count of timestampMillisecondValues.
         */
        public int getTimestampMillisecondValuesCount() {
          return timestampMillisecondValues_.size();
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @param index The index of the element to return.
         * @return The timestampMillisecondValues at the given index.
         */
        public long getTimestampMillisecondValues(int index) {
          return timestampMillisecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @param index The index to set the value at.
         * @param value The timestampMillisecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimestampMillisecondValues(
            int index, long value) {
          ensureTimestampMillisecondValuesIsMutable();
          timestampMillisecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @param value The timestampMillisecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimestampMillisecondValues(long value) {
          ensureTimestampMillisecondValuesIsMutable();
          timestampMillisecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @param values The timestampMillisecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimestampMillisecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimestampMillisecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timestampMillisecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_millisecond_values = 17;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimestampMillisecondValues() {
          timestampMillisecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00010000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timestampMicrosecondValues_ = emptyLongList();
        private void ensureTimestampMicrosecondValuesIsMutable() {
          if (!((bitField0_ & 0x00020000) != 0)) {
            timestampMicrosecondValues_ = mutableCopy(timestampMicrosecondValues_);
            bitField0_ |= 0x00020000;
           }
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @return A list containing the timestampMicrosecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimestampMicrosecondValuesList() {
          return ((bitField0_ & 0x00020000) != 0) ?
                   java.util.Collections.unmodifiableList(timestampMicrosecondValues_) : timestampMicrosecondValues_;
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @return The count of timestampMicrosecondValues.
         */
        public int getTimestampMicrosecondValuesCount() {
          return timestampMicrosecondValues_.size();
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @param index The index of the element to return.
         * @return The timestampMicrosecondValues at the given index.
         */
        public long getTimestampMicrosecondValues(int index) {
          return timestampMicrosecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @param index The index to set the value at.
         * @param value The timestampMicrosecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimestampMicrosecondValues(
            int index, long value) {
          ensureTimestampMicrosecondValuesIsMutable();
          timestampMicrosecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @param value The timestampMicrosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimestampMicrosecondValues(long value) {
          ensureTimestampMicrosecondValuesIsMutable();
          timestampMicrosecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @param values The timestampMicrosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimestampMicrosecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimestampMicrosecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timestampMicrosecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_microsecond_values = 18;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimestampMicrosecondValues() {
          timestampMicrosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00020000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timestampNanosecondValues_ = emptyLongList();
        private void ensureTimestampNanosecondValuesIsMutable() {
          if (!((bitField0_ & 0x00040000) != 0)) {
            timestampNanosecondValues_ = mutableCopy(timestampNanosecondValues_);
            bitField0_ |= 0x00040000;
           }
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @return A list containing the timestampNanosecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimestampNanosecondValuesList() {
          return ((bitField0_ & 0x00040000) != 0) ?
                   java.util.Collections.unmodifiableList(timestampNanosecondValues_) : timestampNanosecondValues_;
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @return The count of timestampNanosecondValues.
         */
        public int getTimestampNanosecondValuesCount() {
          return timestampNanosecondValues_.size();
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @param index The index of the element to return.
         * @return The timestampNanosecondValues at the given index.
         */
        public long getTimestampNanosecondValues(int index) {
          return timestampNanosecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @param index The index to set the value at.
         * @param value The timestampNanosecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimestampNanosecondValues(
            int index, long value) {
          ensureTimestampNanosecondValuesIsMutable();
          timestampNanosecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @param value The timestampNanosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimestampNanosecondValues(long value) {
          ensureTimestampNanosecondValuesIsMutable();
          timestampNanosecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @param values The timestampNanosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimestampNanosecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimestampNanosecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timestampNanosecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 timestamp_nanosecond_values = 19;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimestampNanosecondValues() {
          timestampNanosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00040000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timeSecondValues_ = emptyLongList();
        private void ensureTimeSecondValuesIsMutable() {
          if (!((bitField0_ & 0x00080000) != 0)) {
            timeSecondValues_ = mutableCopy(timeSecondValues_);
            bitField0_ |= 0x00080000;
           }
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @return A list containing the timeSecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimeSecondValuesList() {
          return ((bitField0_ & 0x00080000) != 0) ?
                   java.util.Collections.unmodifiableList(timeSecondValues_) : timeSecondValues_;
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @return The count of timeSecondValues.
         */
        public int getTimeSecondValuesCount() {
          return timeSecondValues_.size();
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @param index The index of the element to return.
         * @return The timeSecondValues at the given index.
         */
        public long getTimeSecondValues(int index) {
          return timeSecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @param index The index to set the value at.
         * @param value The timeSecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimeSecondValues(
            int index, long value) {
          ensureTimeSecondValuesIsMutable();
          timeSecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @param value The timeSecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimeSecondValues(long value) {
          ensureTimeSecondValuesIsMutable();
          timeSecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @param values The timeSecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimeSecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimeSecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timeSecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_second_values = 20;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeSecondValues() {
          timeSecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00080000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timeMillisecondValues_ = emptyLongList();
        private void ensureTimeMillisecondValuesIsMutable() {
          if (!((bitField0_ & 0x00100000) != 0)) {
            timeMillisecondValues_ = mutableCopy(timeMillisecondValues_);
            bitField0_ |= 0x00100000;
           }
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @return A list containing the timeMillisecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimeMillisecondValuesList() {
          return ((bitField0_ & 0x00100000) != 0) ?
                   java.util.Collections.unmodifiableList(timeMillisecondValues_) : timeMillisecondValues_;
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @return The count of timeMillisecondValues.
         */
        public int getTimeMillisecondValuesCount() {
          return timeMillisecondValues_.size();
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @param index The index of the element to return.
         * @return The timeMillisecondValues at the given index.
         */
        public long getTimeMillisecondValues(int index) {
          return timeMillisecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @param index The index to set the value at.
         * @param value The timeMillisecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimeMillisecondValues(
            int index, long value) {
          ensureTimeMillisecondValuesIsMutable();
          timeMillisecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @param value The timeMillisecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimeMillisecondValues(long value) {
          ensureTimeMillisecondValuesIsMutable();
          timeMillisecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @param values The timeMillisecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimeMillisecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimeMillisecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timeMillisecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_millisecond_values = 21;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeMillisecondValues() {
          timeMillisecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00100000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timeMicrosecondValues_ = emptyLongList();
        private void ensureTimeMicrosecondValuesIsMutable() {
          if (!((bitField0_ & 0x00200000) != 0)) {
            timeMicrosecondValues_ = mutableCopy(timeMicrosecondValues_);
            bitField0_ |= 0x00200000;
           }
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @return A list containing the timeMicrosecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimeMicrosecondValuesList() {
          return ((bitField0_ & 0x00200000) != 0) ?
                   java.util.Collections.unmodifiableList(timeMicrosecondValues_) : timeMicrosecondValues_;
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @return The count of timeMicrosecondValues.
         */
        public int getTimeMicrosecondValuesCount() {
          return timeMicrosecondValues_.size();
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @param index The index of the element to return.
         * @return The timeMicrosecondValues at the given index.
         */
        public long getTimeMicrosecondValues(int index) {
          return timeMicrosecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @param index The index to set the value at.
         * @param value The timeMicrosecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimeMicrosecondValues(
            int index, long value) {
          ensureTimeMicrosecondValuesIsMutable();
          timeMicrosecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @param value The timeMicrosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimeMicrosecondValues(long value) {
          ensureTimeMicrosecondValuesIsMutable();
          timeMicrosecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @param values The timeMicrosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimeMicrosecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimeMicrosecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timeMicrosecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_microsecond_values = 22;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeMicrosecondValues() {
          timeMicrosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00200000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList timeNanosecondValues_ = emptyLongList();
        private void ensureTimeNanosecondValuesIsMutable() {
          if (!((bitField0_ & 0x00400000) != 0)) {
            timeNanosecondValues_ = mutableCopy(timeNanosecondValues_);
            bitField0_ |= 0x00400000;
           }
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @return A list containing the timeNanosecondValues.
         */
        public java.util.List<java.lang.Long>
            getTimeNanosecondValuesList() {
          return ((bitField0_ & 0x00400000) != 0) ?
                   java.util.Collections.unmodifiableList(timeNanosecondValues_) : timeNanosecondValues_;
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @return The count of timeNanosecondValues.
         */
        public int getTimeNanosecondValuesCount() {
          return timeNanosecondValues_.size();
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @param index The index of the element to return.
         * @return The timeNanosecondValues at the given index.
         */
        public long getTimeNanosecondValues(int index) {
          return timeNanosecondValues_.getLong(index);
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @param index The index to set the value at.
         * @param value The timeNanosecondValues to set.
         * @return This builder for chaining.
         */
        public Builder setTimeNanosecondValues(
            int index, long value) {
          ensureTimeNanosecondValuesIsMutable();
          timeNanosecondValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @param value The timeNanosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addTimeNanosecondValues(long value) {
          ensureTimeNanosecondValuesIsMutable();
          timeNanosecondValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @param values The timeNanosecondValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllTimeNanosecondValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureTimeNanosecondValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, timeNanosecondValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 time_nanosecond_values = 23;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeNanosecondValues() {
          timeNanosecondValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x00400000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.IntList intervalYearMonthValues_ = emptyIntList();
        private void ensureIntervalYearMonthValuesIsMutable() {
          if (!((bitField0_ & 0x00800000) != 0)) {
            intervalYearMonthValues_ = mutableCopy(intervalYearMonthValues_);
            bitField0_ |= 0x00800000;
           }
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @return A list containing the intervalYearMonthValues.
         */
        public java.util.List<java.lang.Integer>
            getIntervalYearMonthValuesList() {
          return ((bitField0_ & 0x00800000) != 0) ?
                   java.util.Collections.unmodifiableList(intervalYearMonthValues_) : intervalYearMonthValues_;
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @return The count of intervalYearMonthValues.
         */
        public int getIntervalYearMonthValuesCount() {
          return intervalYearMonthValues_.size();
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @param index The index of the element to return.
         * @return The intervalYearMonthValues at the given index.
         */
        public int getIntervalYearMonthValues(int index) {
          return intervalYearMonthValues_.getInt(index);
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @param index The index to set the value at.
         * @param value The intervalYearMonthValues to set.
         * @return This builder for chaining.
         */
        public Builder setIntervalYearMonthValues(
            int index, int value) {
          ensureIntervalYearMonthValuesIsMutable();
          intervalYearMonthValues_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @param value The intervalYearMonthValues to add.
         * @return This builder for chaining.
         */
        public Builder addIntervalYearMonthValues(int value) {
          ensureIntervalYearMonthValuesIsMutable();
          intervalYearMonthValues_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @param values The intervalYearMonthValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllIntervalYearMonthValues(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureIntervalYearMonthValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, intervalYearMonthValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int32 interval_year_month_values = 24;</code>
         * @return This builder for chaining.
         */
        public Builder clearIntervalYearMonthValues() {
          intervalYearMonthValues_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00800000);
          onChanged();
          return this;
        }

        private com.google.protobuf.Internal.LongList intervalDayTimeValues_ = emptyLongList();
        private void ensureIntervalDayTimeValuesIsMutable() {
          if (!((bitField0_ & 0x01000000) != 0)) {
            intervalDayTimeValues_ = mutableCopy(intervalDayTimeValues_);
            bitField0_ |= 0x01000000;
           }
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @return A list containing the intervalDayTimeValues.
         */
        public java.util.List<java.lang.Long>
            getIntervalDayTimeValuesList() {
          return ((bitField0_ & 0x01000000) != 0) ?
                   java.util.Collections.unmodifiableList(intervalDayTimeValues_) : intervalDayTimeValues_;
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @return The count of intervalDayTimeValues.
         */
        public int getIntervalDayTimeValuesCount() {
          return intervalDayTimeValues_.size();
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @param index The index of the element to return.
         * @return The intervalDayTimeValues at the given index.
         */
        public long getIntervalDayTimeValues(int index) {
          return intervalDayTimeValues_.getLong(index);
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @param index The index to set the value at.
         * @param value The intervalDayTimeValues to set.
         * @return This builder for chaining.
         */
        public Builder setIntervalDayTimeValues(
            int index, long value) {
          ensureIntervalDayTimeValuesIsMutable();
          intervalDayTimeValues_.setLong(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @param value The intervalDayTimeValues to add.
         * @return This builder for chaining.
         */
        public Builder addIntervalDayTimeValues(long value) {
          ensureIntervalDayTimeValuesIsMutable();
          intervalDayTimeValues_.addLong(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @param values The intervalDayTimeValues to add.
         * @return This builder for chaining.
         */
        public Builder addAllIntervalDayTimeValues(
            java.lang.Iterable<? extends java.lang.Long> values) {
          ensureIntervalDayTimeValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, intervalDayTimeValues_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated int64 interval_day_time_values = 25;</code>
         * @return This builder for chaining.
         */
        public Builder clearIntervalDayTimeValues() {
          intervalDayTimeValues_ = emptyLongList();
          bitField0_ = (bitField0_ & ~0x01000000);
          onChanged();
          return this;
        }

        private java.util.List<io.greptime.v1.Common.IntervalMonthDayNano> intervalMonthDayNanoValues_ =
          java.util.Collections.emptyList();
        private void ensureIntervalMonthDayNanoValuesIsMutable() {
          if (!((bitField0_ & 0x02000000) != 0)) {
            intervalMonthDayNanoValues_ = new java.util.ArrayList<io.greptime.v1.Common.IntervalMonthDayNano>(intervalMonthDayNanoValues_);
            bitField0_ |= 0x02000000;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            io.greptime.v1.Common.IntervalMonthDayNano, io.greptime.v1.Common.IntervalMonthDayNano.Builder, io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> intervalMonthDayNanoValuesBuilder_;

        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public java.util.List<io.greptime.v1.Common.IntervalMonthDayNano> getIntervalMonthDayNanoValuesList() {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(intervalMonthDayNanoValues_);
          } else {
            return intervalMonthDayNanoValuesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public int getIntervalMonthDayNanoValuesCount() {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            return intervalMonthDayNanoValues_.size();
          } else {
            return intervalMonthDayNanoValuesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public io.greptime.v1.Common.IntervalMonthDayNano getIntervalMonthDayNanoValues(int index) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            return intervalMonthDayNanoValues_.get(index);
          } else {
            return intervalMonthDayNanoValuesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder setIntervalMonthDayNanoValues(
            int index, io.greptime.v1.Common.IntervalMonthDayNano value) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.set(index, value);
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder setIntervalMonthDayNanoValues(
            int index, io.greptime.v1.Common.IntervalMonthDayNano.Builder builderForValue) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.set(index, builderForValue.build());
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder addIntervalMonthDayNanoValues(io.greptime.v1.Common.IntervalMonthDayNano value) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.add(value);
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder addIntervalMonthDayNanoValues(
            int index, io.greptime.v1.Common.IntervalMonthDayNano value) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.add(index, value);
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder addIntervalMonthDayNanoValues(
            io.greptime.v1.Common.IntervalMonthDayNano.Builder builderForValue) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.add(builderForValue.build());
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder addIntervalMonthDayNanoValues(
            int index, io.greptime.v1.Common.IntervalMonthDayNano.Builder builderForValue) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.add(index, builderForValue.build());
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder addAllIntervalMonthDayNanoValues(
            java.lang.Iterable<? extends io.greptime.v1.Common.IntervalMonthDayNano> values) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            ensureIntervalMonthDayNanoValuesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, intervalMonthDayNanoValues_);
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder clearIntervalMonthDayNanoValues() {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            intervalMonthDayNanoValues_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x02000000);
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public Builder removeIntervalMonthDayNanoValues(int index) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            ensureIntervalMonthDayNanoValuesIsMutable();
            intervalMonthDayNanoValues_.remove(index);
            onChanged();
          } else {
            intervalMonthDayNanoValuesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public io.greptime.v1.Common.IntervalMonthDayNano.Builder getIntervalMonthDayNanoValuesBuilder(
            int index) {
          return getIntervalMonthDayNanoValuesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder getIntervalMonthDayNanoValuesOrBuilder(
            int index) {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            return intervalMonthDayNanoValues_.get(index);  } else {
            return intervalMonthDayNanoValuesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public java.util.List<? extends io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> 
             getIntervalMonthDayNanoValuesOrBuilderList() {
          if (intervalMonthDayNanoValuesBuilder_ != null) {
            return intervalMonthDayNanoValuesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(intervalMonthDayNanoValues_);
          }
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public io.greptime.v1.Common.IntervalMonthDayNano.Builder addIntervalMonthDayNanoValuesBuilder() {
          return getIntervalMonthDayNanoValuesFieldBuilder().addBuilder(
              io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance());
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public io.greptime.v1.Common.IntervalMonthDayNano.Builder addIntervalMonthDayNanoValuesBuilder(
            int index) {
          return getIntervalMonthDayNanoValuesFieldBuilder().addBuilder(
              index, io.greptime.v1.Common.IntervalMonthDayNano.getDefaultInstance());
        }
        /**
         * <code>repeated .greptime.v1.IntervalMonthDayNano interval_month_day_nano_values = 26;</code>
         */
        public java.util.List<io.greptime.v1.Common.IntervalMonthDayNano.Builder> 
             getIntervalMonthDayNanoValuesBuilderList() {
          return getIntervalMonthDayNanoValuesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            io.greptime.v1.Common.IntervalMonthDayNano, io.greptime.v1.Common.IntervalMonthDayNano.Builder, io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder> 
            getIntervalMonthDayNanoValuesFieldBuilder() {
          if (intervalMonthDayNanoValuesBuilder_ == null) {
            intervalMonthDayNanoValuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                io.greptime.v1.Common.IntervalMonthDayNano, io.greptime.v1.Common.IntervalMonthDayNano.Builder, io.greptime.v1.Common.IntervalMonthDayNanoOrBuilder>(
                    intervalMonthDayNanoValues_,
                    ((bitField0_ & 0x02000000) != 0),
                    getParentForChildren(),
                    isClean());
            intervalMonthDayNanoValues_ = null;
          }
          return intervalMonthDayNanoValuesBuilder_;
        }

        private java.util.List<io.greptime.v1.Common.Decimal128> decimal128Values_ =
          java.util.Collections.emptyList();
        private void ensureDecimal128ValuesIsMutable() {
          if (!((bitField0_ & 0x04000000) != 0)) {
            decimal128Values_ = new java.util.ArrayList<io.greptime.v1.Common.Decimal128>(decimal128Values_);
            bitField0_ |= 0x04000000;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            io.greptime.v1.Common.Decimal128, io.greptime.v1.Common.Decimal128.Builder, io.greptime.v1.Common.Decimal128OrBuilder> decimal128ValuesBuilder_;

        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public java.util.List<io.greptime.v1.Common.Decimal128> getDecimal128ValuesList() {
          if (decimal128ValuesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(decimal128Values_);
          } else {
            return decimal128ValuesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public int getDecimal128ValuesCount() {
          if (decimal128ValuesBuilder_ == null) {
            return decimal128Values_.size();
          } else {
            return decimal128ValuesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public io.greptime.v1.Common.Decimal128 getDecimal128Values(int index) {
          if (decimal128ValuesBuilder_ == null) {
            return decimal128Values_.get(index);
          } else {
            return decimal128ValuesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder setDecimal128Values(
            int index, io.greptime.v1.Common.Decimal128 value) {
          if (decimal128ValuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.set(index, value);
            onChanged();
          } else {
            decimal128ValuesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder setDecimal128Values(
            int index, io.greptime.v1.Common.Decimal128.Builder builderForValue) {
          if (decimal128ValuesBuilder_ == null) {
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.set(index, builderForValue.build());
            onChanged();
          } else {
            decimal128ValuesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder addDecimal128Values(io.greptime.v1.Common.Decimal128 value) {
          if (decimal128ValuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.add(value);
            onChanged();
          } else {
            decimal128ValuesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder addDecimal128Values(
            int index, io.greptime.v1.Common.Decimal128 value) {
          if (decimal128ValuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.add(index, value);
            onChanged();
          } else {
            decimal128ValuesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder addDecimal128Values(
            io.greptime.v1.Common.Decimal128.Builder builderForValue) {
          if (decimal128ValuesBuilder_ == null) {
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.add(builderForValue.build());
            onChanged();
          } else {
            decimal128ValuesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder addDecimal128Values(
            int index, io.greptime.v1.Common.Decimal128.Builder builderForValue) {
          if (decimal128ValuesBuilder_ == null) {
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.add(index, builderForValue.build());
            onChanged();
          } else {
            decimal128ValuesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder addAllDecimal128Values(
            java.lang.Iterable<? extends io.greptime.v1.Common.Decimal128> values) {
          if (decimal128ValuesBuilder_ == null) {
            ensureDecimal128ValuesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, decimal128Values_);
            onChanged();
          } else {
            decimal128ValuesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder clearDecimal128Values() {
          if (decimal128ValuesBuilder_ == null) {
            decimal128Values_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x04000000);
            onChanged();
          } else {
            decimal128ValuesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public Builder removeDecimal128Values(int index) {
          if (decimal128ValuesBuilder_ == null) {
            ensureDecimal128ValuesIsMutable();
            decimal128Values_.remove(index);
            onChanged();
          } else {
            decimal128ValuesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public io.greptime.v1.Common.Decimal128.Builder getDecimal128ValuesBuilder(
            int index) {
          return getDecimal128ValuesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public io.greptime.v1.Common.Decimal128OrBuilder getDecimal128ValuesOrBuilder(
            int index) {
          if (decimal128ValuesBuilder_ == null) {
            return decimal128Values_.get(index);  } else {
            return decimal128ValuesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public java.util.List<? extends io.greptime.v1.Common.Decimal128OrBuilder> 
             getDecimal128ValuesOrBuilderList() {
          if (decimal128ValuesBuilder_ != null) {
            return decimal128ValuesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(decimal128Values_);
          }
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public io.greptime.v1.Common.Decimal128.Builder addDecimal128ValuesBuilder() {
          return getDecimal128ValuesFieldBuilder().addBuilder(
              io.greptime.v1.Common.Decimal128.getDefaultInstance());
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public io.greptime.v1.Common.Decimal128.Builder addDecimal128ValuesBuilder(
            int index) {
          return getDecimal128ValuesFieldBuilder().addBuilder(
              index, io.greptime.v1.Common.Decimal128.getDefaultInstance());
        }
        /**
         * <code>repeated .greptime.v1.Decimal128 decimal128_values = 31;</code>
         */
        public java.util.List<io.greptime.v1.Common.Decimal128.Builder> 
             getDecimal128ValuesBuilderList() {
          return getDecimal128ValuesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            io.greptime.v1.Common.Decimal128, io.greptime.v1.Common.Decimal128.Builder, io.greptime.v1.Common.Decimal128OrBuilder> 
            getDecimal128ValuesFieldBuilder() {
          if (decimal128ValuesBuilder_ == null) {
            decimal128ValuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                io.greptime.v1.Common.Decimal128, io.greptime.v1.Common.Decimal128.Builder, io.greptime.v1.Common.Decimal128OrBuilder>(
                    decimal128Values_,
                    ((bitField0_ & 0x04000000) != 0),
                    getParentForChildren(),
                    isClean());
            decimal128Values_ = null;
          }
          return decimal128ValuesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:greptime.v1.Column.Values)
      }

      // @@protoc_insertion_point(class_scope:greptime.v1.Column.Values)
      private static final io.greptime.v1.Columns.Column.Values DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new io.greptime.v1.Columns.Column.Values();
      }

      public static io.greptime.v1.Columns.Column.Values getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Values>
          PARSER = new com.google.protobuf.AbstractParser<Values>() {
        @java.lang.Override
        public Values parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Values(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<Values> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Values> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public io.greptime.v1.Columns.Column.Values getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int COLUMN_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object columnName_;
    /**
     * <code>string column_name = 1;</code>
     * @return The columnName.
     */
    @java.lang.Override
    public java.lang.String getColumnName() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        columnName_ = s;
        return s;
      }
    }
    /**
     * <code>string column_name = 1;</code>
     * @return The bytes for columnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getColumnNameBytes() {
      java.lang.Object ref = columnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        columnName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEMANTIC_TYPE_FIELD_NUMBER = 2;
    private int semanticType_;
    /**
     * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
     * @return The enum numeric value on the wire for semanticType.
     */
    @java.lang.Override public int getSemanticTypeValue() {
      return semanticType_;
    }
    /**
     * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
     * @return The semanticType.
     */
    @java.lang.Override public io.greptime.v1.Common.SemanticType getSemanticType() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Common.SemanticType result = io.greptime.v1.Common.SemanticType.valueOf(semanticType_);
      return result == null ? io.greptime.v1.Common.SemanticType.UNRECOGNIZED : result;
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    private io.greptime.v1.Columns.Column.Values values_;
    /**
     * <pre>
     * The array of non-null values in this column.
     * For example: suppose there is a column "foo" that contains some int32
     * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
     *   column:
     *     column_name: foo
     *     semantic_type: Tag
     *     values: 1, 2, 3, 4, 5, 7, 8, 9
     *     null_masks: 00100000 00000010
     * </pre>
     *
     * <code>.greptime.v1.Column.Values values = 3;</code>
     * @return Whether the values field is set.
     */
    @java.lang.Override
    public boolean hasValues() {
      return values_ != null;
    }
    /**
     * <pre>
     * The array of non-null values in this column.
     * For example: suppose there is a column "foo" that contains some int32
     * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
     *   column:
     *     column_name: foo
     *     semantic_type: Tag
     *     values: 1, 2, 3, 4, 5, 7, 8, 9
     *     null_masks: 00100000 00000010
     * </pre>
     *
     * <code>.greptime.v1.Column.Values values = 3;</code>
     * @return The values.
     */
    @java.lang.Override
    public io.greptime.v1.Columns.Column.Values getValues() {
      return values_ == null ? io.greptime.v1.Columns.Column.Values.getDefaultInstance() : values_;
    }
    /**
     * <pre>
     * The array of non-null values in this column.
     * For example: suppose there is a column "foo" that contains some int32
     * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
     *   column:
     *     column_name: foo
     *     semantic_type: Tag
     *     values: 1, 2, 3, 4, 5, 7, 8, 9
     *     null_masks: 00100000 00000010
     * </pre>
     *
     * <code>.greptime.v1.Column.Values values = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Columns.Column.ValuesOrBuilder getValuesOrBuilder() {
      return getValues();
    }

    public static final int NULL_MASK_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString nullMask_;
    /**
     * <pre>
     * Mask maps the positions of null values.
     * If a bit in null_mask is 1, it indicates that the column value at that
     * position is null.
     * </pre>
     *
     * <code>bytes null_mask = 4;</code>
     * @return The nullMask.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getNullMask() {
      return nullMask_;
    }

    public static final int DATATYPE_FIELD_NUMBER = 5;
    private int datatype_;
    /**
     * <pre>
     * Helpful in creating vector from column.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
     * @return The enum numeric value on the wire for datatype.
     */
    @java.lang.Override public int getDatatypeValue() {
      return datatype_;
    }
    /**
     * <pre>
     * Helpful in creating vector from column.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
     * @return The datatype.
     */
    @java.lang.Override public io.greptime.v1.Common.ColumnDataType getDatatype() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Common.ColumnDataType result = io.greptime.v1.Common.ColumnDataType.valueOf(datatype_);
      return result == null ? io.greptime.v1.Common.ColumnDataType.UNRECOGNIZED : result;
    }

    public static final int DATATYPE_EXTENSION_FIELD_NUMBER = 6;
    private io.greptime.v1.Common.ColumnDataTypeExtension datatypeExtension_;
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
     * @return Whether the datatypeExtension field is set.
     */
    @java.lang.Override
    public boolean hasDatatypeExtension() {
      return datatypeExtension_ != null;
    }
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
     * @return The datatypeExtension.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnDataTypeExtension getDatatypeExtension() {
      return datatypeExtension_ == null ? io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : datatypeExtension_;
    }
    /**
     * <pre>
     * Extension for ColumnDataType.
     * </pre>
     *
     * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getDatatypeExtensionOrBuilder() {
      return getDatatypeExtension();
    }

    public static final int OPTIONS_FIELD_NUMBER = 7;
    private io.greptime.v1.Common.ColumnOptions options_;
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 7;</code>
     * @return Whether the options field is set.
     */
    @java.lang.Override
    public boolean hasOptions() {
      return options_ != null;
    }
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 7;</code>
     * @return The options.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnOptions getOptions() {
      return options_ == null ? io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
    }
    /**
     * <pre>
     * Additional column options.
     * </pre>
     *
     * <code>.greptime.v1.ColumnOptions options = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder() {
      return getOptions();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columnName_);
      }
      if (semanticType_ != io.greptime.v1.Common.SemanticType.TAG.getNumber()) {
        output.writeEnum(2, semanticType_);
      }
      if (values_ != null) {
        output.writeMessage(3, getValues());
      }
      if (!nullMask_.isEmpty()) {
        output.writeBytes(4, nullMask_);
      }
      if (datatype_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        output.writeEnum(5, datatype_);
      }
      if (datatypeExtension_ != null) {
        output.writeMessage(6, getDatatypeExtension());
      }
      if (options_ != null) {
        output.writeMessage(7, getOptions());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      if (semanticType_ != io.greptime.v1.Common.SemanticType.TAG.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, semanticType_);
      }
      if (values_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getValues());
      }
      if (!nullMask_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, nullMask_);
      }
      if (datatype_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, datatype_);
      }
      if (datatypeExtension_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getDatatypeExtension());
      }
      if (options_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getOptions());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.greptime.v1.Columns.Column)) {
        return super.equals(obj);
      }
      io.greptime.v1.Columns.Column other = (io.greptime.v1.Columns.Column) obj;

      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (semanticType_ != other.semanticType_) return false;
      if (hasValues() != other.hasValues()) return false;
      if (hasValues()) {
        if (!getValues()
            .equals(other.getValues())) return false;
      }
      if (!getNullMask()
          .equals(other.getNullMask())) return false;
      if (datatype_ != other.datatype_) return false;
      if (hasDatatypeExtension() != other.hasDatatypeExtension()) return false;
      if (hasDatatypeExtension()) {
        if (!getDatatypeExtension()
            .equals(other.getDatatypeExtension())) return false;
      }
      if (hasOptions() != other.hasOptions()) return false;
      if (hasOptions()) {
        if (!getOptions()
            .equals(other.getOptions())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (37 * hash) + SEMANTIC_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + semanticType_;
      if (hasValues()) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValues().hashCode();
      }
      hash = (37 * hash) + NULL_MASK_FIELD_NUMBER;
      hash = (53 * hash) + getNullMask().hashCode();
      hash = (37 * hash) + DATATYPE_FIELD_NUMBER;
      hash = (53 * hash) + datatype_;
      if (hasDatatypeExtension()) {
        hash = (37 * hash) + DATATYPE_EXTENSION_FIELD_NUMBER;
        hash = (53 * hash) + getDatatypeExtension().hashCode();
      }
      if (hasOptions()) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Columns.Column parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Columns.Column parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Columns.Column parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.greptime.v1.Columns.Column parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Columns.Column parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Columns.Column parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.greptime.v1.Columns.Column prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code greptime.v1.Column}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.Column)
        io.greptime.v1.Columns.ColumnOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Columns.internal_static_greptime_v1_Column_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Columns.internal_static_greptime_v1_Column_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Columns.Column.class, io.greptime.v1.Columns.Column.Builder.class);
      }

      // Construct using io.greptime.v1.Columns.Column.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        columnName_ = "";

        semanticType_ = 0;

        if (valuesBuilder_ == null) {
          values_ = null;
        } else {
          values_ = null;
          valuesBuilder_ = null;
        }
        nullMask_ = com.google.protobuf.ByteString.EMPTY;

        datatype_ = 0;

        if (datatypeExtensionBuilder_ == null) {
          datatypeExtension_ = null;
        } else {
          datatypeExtension_ = null;
          datatypeExtensionBuilder_ = null;
        }
        if (optionsBuilder_ == null) {
          options_ = null;
        } else {
          options_ = null;
          optionsBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.greptime.v1.Columns.internal_static_greptime_v1_Column_descriptor;
      }

      @java.lang.Override
      public io.greptime.v1.Columns.Column getDefaultInstanceForType() {
        return io.greptime.v1.Columns.Column.getDefaultInstance();
      }

      @java.lang.Override
      public io.greptime.v1.Columns.Column build() {
        io.greptime.v1.Columns.Column result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.greptime.v1.Columns.Column buildPartial() {
        io.greptime.v1.Columns.Column result = new io.greptime.v1.Columns.Column(this);
        result.columnName_ = columnName_;
        result.semanticType_ = semanticType_;
        if (valuesBuilder_ == null) {
          result.values_ = values_;
        } else {
          result.values_ = valuesBuilder_.build();
        }
        result.nullMask_ = nullMask_;
        result.datatype_ = datatype_;
        if (datatypeExtensionBuilder_ == null) {
          result.datatypeExtension_ = datatypeExtension_;
        } else {
          result.datatypeExtension_ = datatypeExtensionBuilder_.build();
        }
        if (optionsBuilder_ == null) {
          result.options_ = options_;
        } else {
          result.options_ = optionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.greptime.v1.Columns.Column) {
          return mergeFrom((io.greptime.v1.Columns.Column)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Columns.Column other) {
        if (other == io.greptime.v1.Columns.Column.getDefaultInstance()) return this;
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          onChanged();
        }
        if (other.semanticType_ != 0) {
          setSemanticTypeValue(other.getSemanticTypeValue());
        }
        if (other.hasValues()) {
          mergeValues(other.getValues());
        }
        if (other.getNullMask() != com.google.protobuf.ByteString.EMPTY) {
          setNullMask(other.getNullMask());
        }
        if (other.datatype_ != 0) {
          setDatatypeValue(other.getDatatypeValue());
        }
        if (other.hasDatatypeExtension()) {
          mergeDatatypeExtension(other.getDatatypeExtension());
        }
        if (other.hasOptions()) {
          mergeOptions(other.getOptions());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.greptime.v1.Columns.Column parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Columns.Column) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object columnName_ = "";
      /**
       * <code>string column_name = 1;</code>
       * @return The columnName.
       */
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          columnName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string column_name = 1;</code>
       * @return The bytes for columnName.
       */
      public com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string column_name = 1;</code>
       * @param value The columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        columnName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string column_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearColumnName() {
        
        columnName_ = getDefaultInstance().getColumnName();
        onChanged();
        return this;
      }
      /**
       * <code>string column_name = 1;</code>
       * @param value The bytes for columnName to set.
       * @return This builder for chaining.
       */
      public Builder setColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        columnName_ = value;
        onChanged();
        return this;
      }

      private int semanticType_ = 0;
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
       * @return The enum numeric value on the wire for semanticType.
       */
      @java.lang.Override public int getSemanticTypeValue() {
        return semanticType_;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
       * @param value The enum numeric value on the wire for semanticType to set.
       * @return This builder for chaining.
       */
      public Builder setSemanticTypeValue(int value) {
        
        semanticType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
       * @return The semanticType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.SemanticType getSemanticType() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.SemanticType result = io.greptime.v1.Common.SemanticType.valueOf(semanticType_);
        return result == null ? io.greptime.v1.Common.SemanticType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
       * @param value The semanticType to set.
       * @return This builder for chaining.
       */
      public Builder setSemanticType(io.greptime.v1.Common.SemanticType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        semanticType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.SemanticType semantic_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSemanticType() {
        
        semanticType_ = 0;
        onChanged();
        return this;
      }

      private io.greptime.v1.Columns.Column.Values values_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Columns.Column.Values, io.greptime.v1.Columns.Column.Values.Builder, io.greptime.v1.Columns.Column.ValuesOrBuilder> valuesBuilder_;
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       * @return Whether the values field is set.
       */
      public boolean hasValues() {
        return valuesBuilder_ != null || values_ != null;
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       * @return The values.
       */
      public io.greptime.v1.Columns.Column.Values getValues() {
        if (valuesBuilder_ == null) {
          return values_ == null ? io.greptime.v1.Columns.Column.Values.getDefaultInstance() : values_;
        } else {
          return valuesBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      public Builder setValues(io.greptime.v1.Columns.Column.Values value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          valuesBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      public Builder setValues(
          io.greptime.v1.Columns.Column.Values.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          valuesBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      public Builder mergeValues(io.greptime.v1.Columns.Column.Values value) {
        if (valuesBuilder_ == null) {
          if (values_ != null) {
            values_ =
              io.greptime.v1.Columns.Column.Values.newBuilder(values_).mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          valuesBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      public Builder clearValues() {
        if (valuesBuilder_ == null) {
          values_ = null;
          onChanged();
        } else {
          values_ = null;
          valuesBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      public io.greptime.v1.Columns.Column.Values.Builder getValuesBuilder() {
        
        onChanged();
        return getValuesFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      public io.greptime.v1.Columns.Column.ValuesOrBuilder getValuesOrBuilder() {
        if (valuesBuilder_ != null) {
          return valuesBuilder_.getMessageOrBuilder();
        } else {
          return values_ == null ?
              io.greptime.v1.Columns.Column.Values.getDefaultInstance() : values_;
        }
      }
      /**
       * <pre>
       * The array of non-null values in this column.
       * For example: suppose there is a column "foo" that contains some int32
       * values (1, 2, 3, 4, 5, null, 7, 8, 9, null);
       *   column:
       *     column_name: foo
       *     semantic_type: Tag
       *     values: 1, 2, 3, 4, 5, 7, 8, 9
       *     null_masks: 00100000 00000010
       * </pre>
       *
       * <code>.greptime.v1.Column.Values values = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Columns.Column.Values, io.greptime.v1.Columns.Column.Values.Builder, io.greptime.v1.Columns.Column.ValuesOrBuilder> 
          getValuesFieldBuilder() {
        if (valuesBuilder_ == null) {
          valuesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Columns.Column.Values, io.greptime.v1.Columns.Column.Values.Builder, io.greptime.v1.Columns.Column.ValuesOrBuilder>(
                  getValues(),
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        return valuesBuilder_;
      }

      private com.google.protobuf.ByteString nullMask_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * Mask maps the positions of null values.
       * If a bit in null_mask is 1, it indicates that the column value at that
       * position is null.
       * </pre>
       *
       * <code>bytes null_mask = 4;</code>
       * @return The nullMask.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getNullMask() {
        return nullMask_;
      }
      /**
       * <pre>
       * Mask maps the positions of null values.
       * If a bit in null_mask is 1, it indicates that the column value at that
       * position is null.
       * </pre>
       *
       * <code>bytes null_mask = 4;</code>
       * @param value The nullMask to set.
       * @return This builder for chaining.
       */
      public Builder setNullMask(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nullMask_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Mask maps the positions of null values.
       * If a bit in null_mask is 1, it indicates that the column value at that
       * position is null.
       * </pre>
       *
       * <code>bytes null_mask = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNullMask() {
        
        nullMask_ = getDefaultInstance().getNullMask();
        onChanged();
        return this;
      }

      private int datatype_ = 0;
      /**
       * <pre>
       * Helpful in creating vector from column.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
       * @return The enum numeric value on the wire for datatype.
       */
      @java.lang.Override public int getDatatypeValue() {
        return datatype_;
      }
      /**
       * <pre>
       * Helpful in creating vector from column.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
       * @param value The enum numeric value on the wire for datatype to set.
       * @return This builder for chaining.
       */
      public Builder setDatatypeValue(int value) {
        
        datatype_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Helpful in creating vector from column.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
       * @return The datatype.
       */
      @java.lang.Override
      public io.greptime.v1.Common.ColumnDataType getDatatype() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.ColumnDataType result = io.greptime.v1.Common.ColumnDataType.valueOf(datatype_);
        return result == null ? io.greptime.v1.Common.ColumnDataType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Helpful in creating vector from column.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
       * @param value The datatype to set.
       * @return This builder for chaining.
       */
      public Builder setDatatype(io.greptime.v1.Common.ColumnDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        datatype_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Helpful in creating vector from column.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataType datatype = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDatatype() {
        
        datatype_ = 0;
        onChanged();
        return this;
      }

      private io.greptime.v1.Common.ColumnDataTypeExtension datatypeExtension_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder> datatypeExtensionBuilder_;
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       * @return Whether the datatypeExtension field is set.
       */
      public boolean hasDatatypeExtension() {
        return datatypeExtensionBuilder_ != null || datatypeExtension_ != null;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       * @return The datatypeExtension.
       */
      public io.greptime.v1.Common.ColumnDataTypeExtension getDatatypeExtension() {
        if (datatypeExtensionBuilder_ == null) {
          return datatypeExtension_ == null ? io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : datatypeExtension_;
        } else {
          return datatypeExtensionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      public Builder setDatatypeExtension(io.greptime.v1.Common.ColumnDataTypeExtension value) {
        if (datatypeExtensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          datatypeExtension_ = value;
          onChanged();
        } else {
          datatypeExtensionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      public Builder setDatatypeExtension(
          io.greptime.v1.Common.ColumnDataTypeExtension.Builder builderForValue) {
        if (datatypeExtensionBuilder_ == null) {
          datatypeExtension_ = builderForValue.build();
          onChanged();
        } else {
          datatypeExtensionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      public Builder mergeDatatypeExtension(io.greptime.v1.Common.ColumnDataTypeExtension value) {
        if (datatypeExtensionBuilder_ == null) {
          if (datatypeExtension_ != null) {
            datatypeExtension_ =
              io.greptime.v1.Common.ColumnDataTypeExtension.newBuilder(datatypeExtension_).mergeFrom(value).buildPartial();
          } else {
            datatypeExtension_ = value;
          }
          onChanged();
        } else {
          datatypeExtensionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      public Builder clearDatatypeExtension() {
        if (datatypeExtensionBuilder_ == null) {
          datatypeExtension_ = null;
          onChanged();
        } else {
          datatypeExtension_ = null;
          datatypeExtensionBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      public io.greptime.v1.Common.ColumnDataTypeExtension.Builder getDatatypeExtensionBuilder() {
        
        onChanged();
        return getDatatypeExtensionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      public io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getDatatypeExtensionOrBuilder() {
        if (datatypeExtensionBuilder_ != null) {
          return datatypeExtensionBuilder_.getMessageOrBuilder();
        } else {
          return datatypeExtension_ == null ?
              io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : datatypeExtension_;
        }
      }
      /**
       * <pre>
       * Extension for ColumnDataType.
       * </pre>
       *
       * <code>.greptime.v1.ColumnDataTypeExtension datatype_extension = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder> 
          getDatatypeExtensionFieldBuilder() {
        if (datatypeExtensionBuilder_ == null) {
          datatypeExtensionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder>(
                  getDatatypeExtension(),
                  getParentForChildren(),
                  isClean());
          datatypeExtension_ = null;
        }
        return datatypeExtensionBuilder_;
      }

      private io.greptime.v1.Common.ColumnOptions options_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder> optionsBuilder_;
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       * @return Whether the options field is set.
       */
      public boolean hasOptions() {
        return optionsBuilder_ != null || options_ != null;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       * @return The options.
       */
      public io.greptime.v1.Common.ColumnOptions getOptions() {
        if (optionsBuilder_ == null) {
          return options_ == null ? io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
        } else {
          return optionsBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      public Builder setOptions(io.greptime.v1.Common.ColumnOptions value) {
        if (optionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          optionsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      public Builder setOptions(
          io.greptime.v1.Common.ColumnOptions.Builder builderForValue) {
        if (optionsBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          optionsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      public Builder mergeOptions(io.greptime.v1.Common.ColumnOptions value) {
        if (optionsBuilder_ == null) {
          if (options_ != null) {
            options_ =
              io.greptime.v1.Common.ColumnOptions.newBuilder(options_).mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          optionsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      public Builder clearOptions() {
        if (optionsBuilder_ == null) {
          options_ = null;
          onChanged();
        } else {
          options_ = null;
          optionsBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      public io.greptime.v1.Common.ColumnOptions.Builder getOptionsBuilder() {
        
        onChanged();
        return getOptionsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      public io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder() {
        if (optionsBuilder_ != null) {
          return optionsBuilder_.getMessageOrBuilder();
        } else {
          return options_ == null ?
              io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
        }
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder> 
          getOptionsFieldBuilder() {
        if (optionsBuilder_ == null) {
          optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder>(
                  getOptions(),
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        return optionsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:greptime.v1.Column)
    }

    // @@protoc_insertion_point(class_scope:greptime.v1.Column)
    private static final io.greptime.v1.Columns.Column DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.greptime.v1.Columns.Column();
    }

    public static io.greptime.v1.Columns.Column getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Column>
        PARSER = new com.google.protobuf.AbstractParser<Column>() {
      @java.lang.Override
      public Column parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Column(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Column> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Column> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.greptime.v1.Columns.Column getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Column_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Column_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Column_Values_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Column_Values_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\030greptime/v1/column.proto\022\013greptime.v1\032" +
      "\030greptime/v1/common.proto\"\303\010\n\006Column\022\023\n\013" +
      "column_name\030\001 \001(\t\0220\n\rsemantic_type\030\002 \001(\016" +
      "2\031.greptime.v1.SemanticType\022*\n\006values\030\003 " +
      "\001(\0132\032.greptime.v1.Column.Values\022\021\n\tnull_" +
      "mask\030\004 \001(\014\022-\n\010datatype\030\005 \001(\0162\033.greptime." +
      "v1.ColumnDataType\022@\n\022datatype_extension\030" +
      "\006 \001(\0132$.greptime.v1.ColumnDataTypeExtens" +
      "ion\022+\n\007options\030\007 \001(\0132\032.greptime.v1.Colum" +
      "nOptions\032\224\006\n\006Values\022\021\n\ti8_values\030\001 \003(\005\022\022" +
      "\n\ni16_values\030\002 \003(\005\022\022\n\ni32_values\030\003 \003(\005\022\022" +
      "\n\ni64_values\030\004 \003(\003\022\021\n\tu8_values\030\005 \003(\r\022\022\n" +
      "\nu16_values\030\006 \003(\r\022\022\n\nu32_values\030\007 \003(\r\022\022\n" +
      "\nu64_values\030\010 \003(\004\022\022\n\nf32_values\030\t \003(\002\022\022\n" +
      "\nf64_values\030\n \003(\001\022\023\n\013bool_values\030\013 \003(\010\022\025" +
      "\n\rbinary_values\030\014 \003(\014\022\025\n\rstring_values\030\r" +
      " \003(\t\022\023\n\013date_values\030\016 \003(\005\022\027\n\017datetime_va" +
      "lues\030\017 \003(\003\022\037\n\027timestamp_second_values\030\020 " +
      "\003(\003\022$\n\034timestamp_millisecond_values\030\021 \003(" +
      "\003\022$\n\034timestamp_microsecond_values\030\022 \003(\003\022" +
      "#\n\033timestamp_nanosecond_values\030\023 \003(\003\022\032\n\022" +
      "time_second_values\030\024 \003(\003\022\037\n\027time_millise" +
      "cond_values\030\025 \003(\003\022\037\n\027time_microsecond_va" +
      "lues\030\026 \003(\003\022\036\n\026time_nanosecond_values\030\027 \003" +
      "(\003\022\"\n\032interval_year_month_values\030\030 \003(\005\022 " +
      "\n\030interval_day_time_values\030\031 \003(\003\022I\n\036inte" +
      "rval_month_day_nano_values\030\032 \003(\0132!.grept" +
      "ime.v1.IntervalMonthDayNano\0222\n\021decimal12" +
      "8_values\030\037 \003(\0132\027.greptime.v1.Decimal128B" +
      "P\n\016io.greptime.v1B\007ColumnsZ5github.com/G" +
      "reptimeTeam/greptime-proto/go/greptime/v" +
      "1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.greptime.v1.Common.getDescriptor(),
        });
    internal_static_greptime_v1_Column_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_greptime_v1_Column_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Column_descriptor,
        new java.lang.String[] { "ColumnName", "SemanticType", "Values", "NullMask", "Datatype", "DatatypeExtension", "Options", });
    internal_static_greptime_v1_Column_Values_descriptor =
      internal_static_greptime_v1_Column_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_Column_Values_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Column_Values_descriptor,
        new java.lang.String[] { "I8Values", "I16Values", "I32Values", "I64Values", "U8Values", "U16Values", "U32Values", "U64Values", "F32Values", "F64Values", "BoolValues", "BinaryValues", "StringValues", "DateValues", "DatetimeValues", "TimestampSecondValues", "TimestampMillisecondValues", "TimestampMicrosecondValues", "TimestampNanosecondValues", "TimeSecondValues", "TimeMillisecondValues", "TimeMicrosecondValues", "TimeNanosecondValues", "IntervalYearMonthValues", "IntervalDayTimeValues", "IntervalMonthDayNanoValues", "Decimal128Values", });
    io.greptime.v1.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
