类 MysqlxResultset.ColumnMetaData

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

    public static final class MysqlxResultset.ColumnMetaData
    extends com.google.protobuf.GeneratedMessageV3
    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
    另请参阅:
    序列化表格
    • 字段详细资料

      • TYPE_FIELD_NUMBER

        public static final int TYPE_FIELD_NUMBER
        另请参阅:
        常量字段值
      • NAME_FIELD_NUMBER

        public static final int NAME_FIELD_NUMBER
        另请参阅:
        常量字段值
      • ORIGINAL_NAME_FIELD_NUMBER

        public static final int ORIGINAL_NAME_FIELD_NUMBER
        另请参阅:
        常量字段值
      • TABLE_FIELD_NUMBER

        public static final int TABLE_FIELD_NUMBER
        另请参阅:
        常量字段值
      • ORIGINAL_TABLE_FIELD_NUMBER

        public static final int ORIGINAL_TABLE_FIELD_NUMBER
        另请参阅:
        常量字段值
      • SCHEMA_FIELD_NUMBER

        public static final int SCHEMA_FIELD_NUMBER
        另请参阅:
        常量字段值
      • CATALOG_FIELD_NUMBER

        public static final int CATALOG_FIELD_NUMBER
        另请参阅:
        常量字段值
      • COLLATION_FIELD_NUMBER

        public static final int COLLATION_FIELD_NUMBER
        另请参阅:
        常量字段值
      • FRACTIONAL_DIGITS_FIELD_NUMBER

        public static final int FRACTIONAL_DIGITS_FIELD_NUMBER
        另请参阅:
        常量字段值
      • LENGTH_FIELD_NUMBER

        public static final int LENGTH_FIELD_NUMBER
        另请参阅:
        常量字段值
      • FLAGS_FIELD_NUMBER

        public static final int FLAGS_FIELD_NUMBER
        另请参阅:
        常量字段值
      • CONTENT_TYPE_FIELD_NUMBER

        public static final int CONTENT_TYPE_FIELD_NUMBER
        另请参阅:
        常量字段值
    • 方法详细资料

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        覆盖:
        newInstance 在类中 com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        指定者:
        getUnknownFields 在接口中 com.google.protobuf.MessageOrBuilder
        覆盖:
        getUnknownFields 在类中 com.google.protobuf.GeneratedMessageV3
      • getDescriptor

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

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        指定者:
        internalGetFieldAccessorTable 在类中 com.google.protobuf.GeneratedMessageV3
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • isInitialized

        public final boolean isInitialized()
        指定者:
        isInitialized 在接口中 com.google.protobuf.MessageLiteOrBuilder
        覆盖:
        isInitialized 在类中 com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        指定者:
        writeTo 在接口中 com.google.protobuf.MessageLite
        覆盖:
        writeTo 在类中 com.google.protobuf.GeneratedMessageV3
        抛出:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        指定者:
        getSerializedSize 在接口中 com.google.protobuf.MessageLite
        覆盖:
        getSerializedSize 在类中 com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        指定者:
        equals 在接口中 com.google.protobuf.Message
        覆盖:
        equals 在类中 com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        指定者:
        hashCode 在接口中 com.google.protobuf.Message
        覆盖:
        hashCode 在类中 com.google.protobuf.AbstractMessage
      • parseFrom

        public static MysqlxResultset.ColumnMetaData parseFrom​(ByteBuffer data)
                                                        throws com.google.protobuf.InvalidProtocolBufferException
        抛出:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static MysqlxResultset.ColumnMetaData parseFrom​(ByteBuffer data,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                        throws com.google.protobuf.InvalidProtocolBufferException
        抛出:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static MysqlxResultset.ColumnMetaData parseFrom​(com.google.protobuf.ByteString data)
                                                        throws com.google.protobuf.InvalidProtocolBufferException
        抛出:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static MysqlxResultset.ColumnMetaData parseFrom​(com.google.protobuf.ByteString data,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                        throws com.google.protobuf.InvalidProtocolBufferException
        抛出:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static MysqlxResultset.ColumnMetaData parseFrom​(byte[] data)
                                                        throws com.google.protobuf.InvalidProtocolBufferException
        抛出:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static MysqlxResultset.ColumnMetaData parseFrom​(byte[] data,
                                                               com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                        throws com.google.protobuf.InvalidProtocolBufferException
        抛出:
        com.google.protobuf.InvalidProtocolBufferException
      • newBuilderForType

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

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

        protected MysqlxResultset.ColumnMetaData.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        指定者:
        newBuilderForType 在类中 com.google.protobuf.GeneratedMessageV3
      • getParserForType

        public com.google.protobuf.Parser<MysqlxResultset.ColumnMetaData> getParserForType()
        指定者:
        getParserForType 在接口中 com.google.protobuf.Message
        指定者:
        getParserForType 在接口中 com.google.protobuf.MessageLite
        覆盖:
        getParserForType 在类中 com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

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