类 MysqlxResultset.ColumnMetaData.Builder

  • 所有已实现的接口:
    com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, MysqlxResultset.ColumnMetaDataOrBuilder, Cloneable
    封闭类:
    MysqlxResultset.ColumnMetaData

    public static final class MysqlxResultset.ColumnMetaData.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<MysqlxResultset.ColumnMetaData.Builder>
    implements MysqlxResultset.ColumnMetaDataOrBuilder
    
    Meta data of a column
    @note
    The encoding used for the different ``bytes`` fields in the
    meta data is externally controlled. See also:
    https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
    @par
    @note
    The server may not set the ``original_{table|name}`` fields
    if they are equal to the plain ``{table|name}`` field.
    @par
    @note
    A client has to reconstruct it like:
    @code{py}
    if .original_name is empty and .name is not empty:
    .original_name = .name
    if .original_table is empty and .table is not empty:
    .original_table = .table
    @endcode
    @par
    @note
    ``Compact metadata format`` can be requested by the client.
    In that case, only ``.type`` is set and all other fields are  empty.
    Expected data type of Mysqlx.Resultset.Row per SQL Type for
    non-NULL values:
    | SQL Type          | .type     | .length | .frac\_dig | .flags | .charset |
    |-------------------|-----------|---------|------------|--------|----------|
    | TINY              | SINT      | x       |            |        |          |
    | TINY UNSIGNED     | UINT      | x       |            | x      |          |
    | SHORT             | SINT      | x       |            |        |          |
    | SHORT UNSIGNED    | UINT      | x       |            | x      |          |
    | INT24             | SINT      | x       |            |        |          |
    | INT24 UNSIGNED    | UINT      | x       |            | x      |          |
    | INT               | SINT      | x       |            |        |          |
    | INT UNSIGNED      | UINT      | x       |            | x      |          |
    | LONGLONG          | SINT      | x       |            |        |          |
    | LONGLONG UNSIGNED | UINT      | x       |            | x      |          |
    | DOUBLE            | DOUBLE    | x       | x          | x      |          |
    | FLOAT             | FLOAT     | x       | x          | x      |          |
    | DECIMAL           | DECIMAL   | x       | x          | x      |          |
    | VARCHAR,CHAR,...  | BYTES     | x       |            | x      | x        |
    | GEOMETRY          | BYTES     |         |            |        |          |
    | TIME              | TIME      | x       |            |        |          |
    | DATE              | DATETIME  | x       |            |        |          |
    | DATETIME          | DATETIME  | x       |            |        |          |
    | YEAR              | UINT      | x       |            | x      |          |
    | TIMESTAMP         | DATETIME  | x       |            |        |          |
    | SET               | SET       |         |            |        | x        |
    | ENUM              | ENUM      |         |            |        | x        |
    | NULL              | BYTES     |         |            |        |          |
    | BIT               | BIT       | x       |            |        |          |
    @note
    The SQL "NULL" value is sent as an empty field value in
    @ref Mysqlx::Resultset::Row.
    @par Tip
    The protobuf encoding of primitive data types is described in
    https://developers.google.com/protocol-buffers/docs/encoding
    + SINT
    - ``.length`` @n
    Maximum number of displayable decimal digits (including
    minus sign) of the type.
    @note
    The valid range is 0-255, but usually you'll see 1-20.
    | SQL Type         | Maximum Digits per Type |
    |------------------|-------------------------|
    | TINY SIGNED      | 4                       |
    | SHORT SIGNED     | 6                       |
    | INT24 SIGNED     | 8                       |
    | INT SIGNED       | 11                      |
    | LONGLONG SIGNED  | 20                      |
    @par Tip
    Definition of ``M`` are in
    https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
    - ``value``@n
    Variable length encoded signed 64 integer.
    + UINT
    - ``.flags & 1`` (zerofill) @n
    The client has to left pad with 0's up to .length.
    - ``.length`` @n
    Maximum number of displayable decimal digits of the
    type.
    @note
    The valid range is 0-255, but usually you'll see
    1-20.
    | SQL Type             | max digits per type |
    |----------------------|---------------------|
    | TINY UNSIGNED        | 3                   |
    | SHORT UNSIGNED       | 5                   |
    | INT24 UNSIGNED       | 8                   |
    | INT UNSIGNED         | 10                  |
    | LONGLONG UNSIGNED    | 20                  |
    @par Tip
    Definition of ``M`` are in
    https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
    - ``value`` @n
    Variable length encoded unsigned 64 integer.
    + BIT
    - ``.length`` @n
    Maximum number of displayable binary digits.
    @note
    The valid range for M of the ``BIT`` type is 1 - 64.
    @par Tip
    https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
    - ``value`` @n
    Variable length encoded unsigned 64 integer.
    + DOUBLE
    - ``.length`` @n
    Maximum number of displayable decimal digits (including
    the decimal point and ``.fractional_digits``).
    - ``.fractional_digits`` @n
    Maximum number of displayable decimal digits following
    the decimal point.
    - ``value``@n
    Encoded as protobuf's 'double'.
    + FLOAT
    - ``.length``@n
    Maximum number of displayable decimal digits (including
    the decimal point and ``.fractional_digits``).
    - ``.fractional_digits``@n
    Maximum number of displayable decimal digits following
    the decimal point.
    - ``value``@n
    Encoded as protobuf's 'float'.
    + BYTES, ENUM
    @note
    BYTES is used for all opaque byte strings that may have a charset:
    -  TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
    -  TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
    -  VARCHAR, VARBINARY
    -  CHAR, BINARY
    -  ENUM
    - ``.length``@n
    Maximum length of characters of the underlying type.
    - ``.flags & 1`` (rightpad) @n
    If the length of the field is less than ``.length``, the
    receiver is supposed to add padding characters to the
    right end of the string. If the ``.charset`` is
    "binary", the padding character is ``0x00``, otherwise
    it is a space character as defined by that character
    set.
    | SQL Type      | .length  | .charset  | .flags   |
    |---------------|----------|-----------|----------|
    | TINYBLOB      | 256      | binary    |          |
    | BLOB          | 65535    | binary    |          |
    | VARCHAR(32)   | 32       | utf8      |          |
    | VARBINARY(32) | 32       | utf8\_bin |          |
    | BINARY(32)    | 32       | binary    | rightpad |
    | CHAR(32)      | 32       | utf8      | rightpad |
    - ``value``
    Sequence of bytes with added one extra ``0x00`` byte at
    the end. To obtain the original string, the extra
    ``0x00`` should be removed. The length of the string can
    be acquired with protobuf's field ``length()`` method:
    ``length of sequence-of-bytes = length-of-field - 1``
    @note
    The extra byte allows to distinguish between a NULL
    and empty byte sequence.
    + TIME
    A time value.
    - ``value``@n
    The following bytes sequence:
    ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
    -  negate - one byte, should be one of: 0x00 for "+",
    0x01 for "-"
    -  hour - optional variable length encoded unsigned64
    value for the hour
    -  minutes - optional variable length encoded unsigned64
    value for the minutes
    -  seconds - optional variable length encoded unsigned64
    value for the seconds
    -  useconds - optional variable length encoded
    unsigned64 value for the microseconds
    @par Tip
    The protobuf encoding in
    https://developers.google.com/protocol-buffers/docs/encoding.
    @note
    Hour, minutes, seconds, and useconds are optional if
    all the values to the right are 0.
    Example: ``0x00 -> +00:00:00.000000``
    + DATETIME
    A date or date and time value.
    - ``value`` @n
    A sequence of variants, arranged as follows:
    ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
    -  year - variable length encoded unsigned64 value for
    the year
    -  month - variable length encoded unsigned64 value for
    the month
    -  day - variable length encoded unsigned64 value for
    the day
    -  hour - optional variable length encoded unsigned64
    value for the hour
    -  minutes - optional variable length encoded unsigned64
    value for the minutes
    -  seconds - optional variable length encoded unsigned64
    value for the seconds
    -  useconds - optional variable length encoded
    unsigned64 value for the microseconds
    @note
    Hour, minutes, seconds, useconds are optional if all
    the values to the right are 0.
    - ``.flags``@n
    | Name          | Position |
    |---------------|----------|
    | is\_timestamp | 1        |
    + DECIMAL
    An arbitrary length number. The number is encoded as a
    single byte indicating the position of the decimal point
    followed by the Packed BCD encoded number. Packed BCD is
    used to simplify conversion to and from strings and other
    native arbitrary precision math data types. See also: packed
    BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
    - ``.length``
    Maximum number of displayable decimal digits
    (*excluding* the decimal point and sign, but including
    ``.fractional_digits``).
    @note
    Should be in the range of 1 - 65.
    - ``.fractional_digits``
    The decimal digits to display out of length.
    @note
    Should be in the range of 0 - 30.
    ``value``
    The following bytes sequence:
    ``scale | BCD+ sign [0x00]?``
    -  scale - 8bit scale value (number of decimal digit after the '.')
    -  BCD - BCD encoded digits (4 bits for each digit)
    -  sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
    -  0x0 - last 4bits if length(digits) % 2 == 0
    Example: ``x04 0x12 0x34 0x01
    0xd0 -> -12.3401``
    + SET
    A list of strings representing a SET of values.
    - ``value``@n
    A sequence of 0 or more of protobuf's bytes (length
    prepended octets) or one of the special sequences with a
    predefined meaning listed below.
    Example (length of the bytes array shown in brackets):
    -  ``[0]`` - the NULL value
    -  ``[1] 0x00`` - a set containing a blank string ''
    -  ``[1] 0x01`` - this would be an invalid value,
    but is to be treated as the empty set
    -  ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
    character
    -  ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
     
    Protobuf type Mysqlx.Resultset.ColumnMetaData
    • 方法详细资料

      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        指定者:
        internalGetFieldAccessorTable 在类中 com.google.protobuf.GeneratedMessageV3.Builder<MysqlxResultset.ColumnMetaData.Builder>
      • getDescriptorForType

        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
        指定者:
        getDescriptorForType 在接口中 com.google.protobuf.Message.Builder
        指定者:
        getDescriptorForType 在接口中 com.google.protobuf.MessageOrBuilder
        覆盖:
        getDescriptorForType 在类中 com.google.protobuf.GeneratedMessageV3.Builder<MysqlxResultset.ColumnMetaData.Builder>
      • getDefaultInstanceForType

        public MysqlxResultset.ColumnMetaData getDefaultInstanceForType()
        指定者:
        getDefaultInstanceForType 在接口中 com.google.protobuf.MessageLiteOrBuilder
        指定者:
        getDefaultInstanceForType 在接口中 com.google.protobuf.MessageOrBuilder
      • build

        public MysqlxResultset.ColumnMetaData build()
        指定者:
        build 在接口中 com.google.protobuf.Message.Builder
        指定者:
        build 在接口中 com.google.protobuf.MessageLite.Builder
      • buildPartial

        public MysqlxResultset.ColumnMetaData buildPartial()
        指定者:
        buildPartial 在接口中 com.google.protobuf.Message.Builder
        指定者:
        buildPartial 在接口中 com.google.protobuf.MessageLite.Builder
      • isInitialized

        public final boolean isInitialized()
        指定者:
        isInitialized 在接口中 com.google.protobuf.MessageLiteOrBuilder
        覆盖:
        isInitialized 在类中 com.google.protobuf.GeneratedMessageV3.Builder<MysqlxResultset.ColumnMetaData.Builder>
      • hasType

        public boolean hasType()
         datatype of the field in a row 
         
        required .Mysqlx.Resultset.ColumnMetaData.FieldType type = 1;
        指定者:
        hasType 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        Whether the type field is set.
      • clearType

        public MysqlxResultset.ColumnMetaData.Builder clearType()
         datatype of the field in a row 
         
        required .Mysqlx.Resultset.ColumnMetaData.FieldType type = 1;
        返回:
        This builder for chaining.
      • setName

        public MysqlxResultset.ColumnMetaData.Builder setName​(com.google.protobuf.ByteString value)
         name of the column 
         
        optional bytes name = 2;
        参数:
        value - The name to set.
        返回:
        This builder for chaining.
      • setOriginalName

        public MysqlxResultset.ColumnMetaData.Builder setOriginalName​(com.google.protobuf.ByteString value)
         name of the column before an alias was applied 
         
        optional bytes original_name = 3;
        参数:
        value - The originalName to set.
        返回:
        This builder for chaining.
      • clearOriginalName

        public MysqlxResultset.ColumnMetaData.Builder clearOriginalName()
         name of the column before an alias was applied 
         
        optional bytes original_name = 3;
        返回:
        This builder for chaining.
      • setTable

        public MysqlxResultset.ColumnMetaData.Builder setTable​(com.google.protobuf.ByteString value)
         name of the table the column originates from 
         
        optional bytes table = 4;
        参数:
        value - The table to set.
        返回:
        This builder for chaining.
      • hasOriginalTable

        public boolean hasOriginalTable()
         name of the table the column originates from before an alias was applied 
         
        optional bytes original_table = 5;
        指定者:
        hasOriginalTable 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        Whether the originalTable field is set.
      • getOriginalTable

        public com.google.protobuf.ByteString getOriginalTable()
         name of the table the column originates from before an alias was applied 
         
        optional bytes original_table = 5;
        指定者:
        getOriginalTable 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        The originalTable.
      • setOriginalTable

        public MysqlxResultset.ColumnMetaData.Builder setOriginalTable​(com.google.protobuf.ByteString value)
         name of the table the column originates from before an alias was applied 
         
        optional bytes original_table = 5;
        参数:
        value - The originalTable to set.
        返回:
        This builder for chaining.
      • clearOriginalTable

        public MysqlxResultset.ColumnMetaData.Builder clearOriginalTable()
         name of the table the column originates from before an alias was applied 
         
        optional bytes original_table = 5;
        返回:
        This builder for chaining.
      • setSchema

        public MysqlxResultset.ColumnMetaData.Builder setSchema​(com.google.protobuf.ByteString value)
         schema the column originates from 
         
        optional bytes schema = 6;
        参数:
        value - The schema to set.
        返回:
        This builder for chaining.
      • hasCatalog

        public boolean hasCatalog()
         catalog the schema originates from
        @note
        As there is currently no support for catalogs in MySQL,
        don't expect this field to be set. In the MySQL C/S
        protocol the field had the value ``def`` all the time 
         
        optional bytes catalog = 7;
        指定者:
        hasCatalog 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        Whether the catalog field is set.
      • getCatalog

        public com.google.protobuf.ByteString getCatalog()
         catalog the schema originates from
        @note
        As there is currently no support for catalogs in MySQL,
        don't expect this field to be set. In the MySQL C/S
        protocol the field had the value ``def`` all the time 
         
        optional bytes catalog = 7;
        指定者:
        getCatalog 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        The catalog.
      • setCatalog

        public MysqlxResultset.ColumnMetaData.Builder setCatalog​(com.google.protobuf.ByteString value)
         catalog the schema originates from
        @note
        As there is currently no support for catalogs in MySQL,
        don't expect this field to be set. In the MySQL C/S
        protocol the field had the value ``def`` all the time 
         
        optional bytes catalog = 7;
        参数:
        value - The catalog to set.
        返回:
        This builder for chaining.
      • clearCatalog

        public MysqlxResultset.ColumnMetaData.Builder clearCatalog()
         catalog the schema originates from
        @note
        As there is currently no support for catalogs in MySQL,
        don't expect this field to be set. In the MySQL C/S
        protocol the field had the value ``def`` all the time 
         
        optional bytes catalog = 7;
        返回:
        This builder for chaining.
      • setCollation

        public MysqlxResultset.ColumnMetaData.Builder setCollation​(long value)
        optional uint64 collation = 8;
        参数:
        value - The collation to set.
        返回:
        This builder for chaining.
      • hasFractionalDigits

        public boolean hasFractionalDigits()
         displayed factional decimal digits for floating point and
        fixed point numbers 
         
        optional uint32 fractional_digits = 9;
        指定者:
        hasFractionalDigits 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        Whether the fractionalDigits field is set.
      • setFractionalDigits

        public MysqlxResultset.ColumnMetaData.Builder setFractionalDigits​(int value)
         displayed factional decimal digits for floating point and
        fixed point numbers 
         
        optional uint32 fractional_digits = 9;
        参数:
        value - The fractionalDigits to set.
        返回:
        This builder for chaining.
      • clearFractionalDigits

        public MysqlxResultset.ColumnMetaData.Builder clearFractionalDigits()
         displayed factional decimal digits for floating point and
        fixed point numbers 
         
        optional uint32 fractional_digits = 9;
        返回:
        This builder for chaining.
      • setLength

        public MysqlxResultset.ColumnMetaData.Builder setLength​(int value)
         maximum count of displayable characters of .type 
         
        optional uint32 length = 10;
        参数:
        value - The length to set.
        返回:
        This builder for chaining.
      • hasFlags

        public boolean hasFlags()
         ``.type`` specific flags
        | Type    | Value  | Description  |
        |---------|--------|--------------|
        | UINT    | 0x0001 | zerofill     |
        | DOUBLE  | 0x0001 | unsigned     |
        | FLOAT   | 0x0001 | unsigned     |
        | DECIMAL | 0x0001 | unsigned     |
        | BYTES   | 0x0001 | rightpad     |
        | Value  | Description     |
        |--------|-----------------|
        | 0x0010 | NOT\_NULL       |
        | 0x0020 | PRIMARY\_KEY    |
        | 0x0040 | UNIQUE\_KEY     |
        | 0x0080 | MULTIPLE\_KEY   |
        | 0x0100 | AUTO\_INCREMENT |
        default: 0 
         
        optional uint32 flags = 11;
        指定者:
        hasFlags 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        Whether the flags field is set.
      • getFlags

        public int getFlags()
         ``.type`` specific flags
        | Type    | Value  | Description  |
        |---------|--------|--------------|
        | UINT    | 0x0001 | zerofill     |
        | DOUBLE  | 0x0001 | unsigned     |
        | FLOAT   | 0x0001 | unsigned     |
        | DECIMAL | 0x0001 | unsigned     |
        | BYTES   | 0x0001 | rightpad     |
        | Value  | Description     |
        |--------|-----------------|
        | 0x0010 | NOT\_NULL       |
        | 0x0020 | PRIMARY\_KEY    |
        | 0x0040 | UNIQUE\_KEY     |
        | 0x0080 | MULTIPLE\_KEY   |
        | 0x0100 | AUTO\_INCREMENT |
        default: 0 
         
        optional uint32 flags = 11;
        指定者:
        getFlags 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        The flags.
      • setFlags

        public MysqlxResultset.ColumnMetaData.Builder setFlags​(int value)
         ``.type`` specific flags
        | Type    | Value  | Description  |
        |---------|--------|--------------|
        | UINT    | 0x0001 | zerofill     |
        | DOUBLE  | 0x0001 | unsigned     |
        | FLOAT   | 0x0001 | unsigned     |
        | DECIMAL | 0x0001 | unsigned     |
        | BYTES   | 0x0001 | rightpad     |
        | Value  | Description     |
        |--------|-----------------|
        | 0x0010 | NOT\_NULL       |
        | 0x0020 | PRIMARY\_KEY    |
        | 0x0040 | UNIQUE\_KEY     |
        | 0x0080 | MULTIPLE\_KEY   |
        | 0x0100 | AUTO\_INCREMENT |
        default: 0 
         
        optional uint32 flags = 11;
        参数:
        value - The flags to set.
        返回:
        This builder for chaining.
      • clearFlags

        public MysqlxResultset.ColumnMetaData.Builder clearFlags()
         ``.type`` specific flags
        | Type    | Value  | Description  |
        |---------|--------|--------------|
        | UINT    | 0x0001 | zerofill     |
        | DOUBLE  | 0x0001 | unsigned     |
        | FLOAT   | 0x0001 | unsigned     |
        | DECIMAL | 0x0001 | unsigned     |
        | BYTES   | 0x0001 | rightpad     |
        | Value  | Description     |
        |--------|-----------------|
        | 0x0010 | NOT\_NULL       |
        | 0x0020 | PRIMARY\_KEY    |
        | 0x0040 | UNIQUE\_KEY     |
        | 0x0080 | MULTIPLE\_KEY   |
        | 0x0100 | AUTO\_INCREMENT |
        default: 0 
         
        optional uint32 flags = 11;
        返回:
        This builder for chaining.
      • hasContentType

        public boolean hasContentType()
         a hint about the higher-level encoding of a BYTES field
        | Type   | Value  | Description             |
        |--------|--------|-------------------------|
        | BYTES  | 0x0001 | GEOMETRY (WKB encoding) |
        | BYTES  | 0x0002 | JSON (text encoding)    |
        | BYTES  | 0x0003 | XML (text encoding)     |
        @note
        This list isn't comprehensive. As a guideline: the field's
        value is expected to pass a validator check on client
        and server if this field is set. If the server adds more
        internal data types that rely on BLOB storage like image
        manipulation, seeking into complex types in BLOBs, and
        more types will be added 
         
        optional uint32 content_type = 12;
        指定者:
        hasContentType 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        Whether the contentType field is set.
      • getContentType

        public int getContentType()
         a hint about the higher-level encoding of a BYTES field
        | Type   | Value  | Description             |
        |--------|--------|-------------------------|
        | BYTES  | 0x0001 | GEOMETRY (WKB encoding) |
        | BYTES  | 0x0002 | JSON (text encoding)    |
        | BYTES  | 0x0003 | XML (text encoding)     |
        @note
        This list isn't comprehensive. As a guideline: the field's
        value is expected to pass a validator check on client
        and server if this field is set. If the server adds more
        internal data types that rely on BLOB storage like image
        manipulation, seeking into complex types in BLOBs, and
        more types will be added 
         
        optional uint32 content_type = 12;
        指定者:
        getContentType 在接口中 MysqlxResultset.ColumnMetaDataOrBuilder
        返回:
        The contentType.
      • setContentType

        public MysqlxResultset.ColumnMetaData.Builder setContentType​(int value)
         a hint about the higher-level encoding of a BYTES field
        | Type   | Value  | Description             |
        |--------|--------|-------------------------|
        | BYTES  | 0x0001 | GEOMETRY (WKB encoding) |
        | BYTES  | 0x0002 | JSON (text encoding)    |
        | BYTES  | 0x0003 | XML (text encoding)     |
        @note
        This list isn't comprehensive. As a guideline: the field's
        value is expected to pass a validator check on client
        and server if this field is set. If the server adds more
        internal data types that rely on BLOB storage like image
        manipulation, seeking into complex types in BLOBs, and
        more types will be added 
         
        optional uint32 content_type = 12;
        参数:
        value - The contentType to set.
        返回:
        This builder for chaining.
      • clearContentType

        public MysqlxResultset.ColumnMetaData.Builder clearContentType()
         a hint about the higher-level encoding of a BYTES field
        | Type   | Value  | Description             |
        |--------|--------|-------------------------|
        | BYTES  | 0x0001 | GEOMETRY (WKB encoding) |
        | BYTES  | 0x0002 | JSON (text encoding)    |
        | BYTES  | 0x0003 | XML (text encoding)     |
        @note
        This list isn't comprehensive. As a guideline: the field's
        value is expected to pass a validator check on client
        and server if this field is set. If the server adds more
        internal data types that rely on BLOB storage like image
        manipulation, seeking into complex types in BLOBs, and
        more types will be added 
         
        optional uint32 content_type = 12;
        返回:
        This builder for chaining.