mysqlxresultset

package
v0.9.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ContentType_BYTES_name = map[int32]string{
		1: "GEOMETRY",
		2: "JSON",
		3: "XML",
	}
	ContentType_BYTES_value = map[string]int32{
		"GEOMETRY": 1,
		"JSON":     2,
		"XML":      3,
	}
)

Enum value maps for ContentType_BYTES.

View Source
var (
	ContentType_DATETIME_name = map[int32]string{
		1: "DATE",
		2: "DATETIME",
	}
	ContentType_DATETIME_value = map[string]int32{
		"DATE":     1,
		"DATETIME": 2,
	}
)

Enum value maps for ContentType_DATETIME.

View Source
var (
	ColumnMetaData_FieldType_name = map[int32]string{
		1:  "SINT",
		2:  "UINT",
		5:  "DOUBLE",
		6:  "FLOAT",
		7:  "BYTES",
		10: "TIME",
		12: "DATETIME",
		15: "SET",
		16: "ENUM",
		17: "BIT",
		18: "DECIMAL",
	}
	ColumnMetaData_FieldType_value = map[string]int32{
		"SINT":     1,
		"UINT":     2,
		"DOUBLE":   5,
		"FLOAT":    6,
		"BYTES":    7,
		"TIME":     10,
		"DATETIME": 12,
		"SET":      15,
		"ENUM":     16,
		"BIT":      17,
		"DECIMAL":  18,
	}
)

Enum value maps for ColumnMetaData_FieldType.

View Source
var File_mysqlx_resultset_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type ColumnMetaData

type ColumnMetaData struct {

	// * datatype of the field in a row
	Type *ColumnMetaData_FieldType `protobuf:"varint,1,req,name=type,enum=Mysqlx.Resultset.ColumnMetaData_FieldType" json:"type,omitempty"`
	// * name of the column
	Name []byte `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	// * name of the column before an alias was applied
	OriginalName []byte `protobuf:"bytes,3,opt,name=original_name,json=originalName" json:"original_name,omitempty"`
	// * name of the table the column originates from
	Table []byte `protobuf:"bytes,4,opt,name=table" json:"table,omitempty"`
	// * name of the table the column originates from before an alias was applied
	OriginalTable []byte `protobuf:"bytes,5,opt,name=original_table,json=originalTable" json:"original_table,omitempty"`
	// * schema the column originates from
	Schema []byte `protobuf:"bytes,6,opt,name=schema" json:"schema,omitempty"`
	// * 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
	Catalog   []byte  `protobuf:"bytes,7,opt,name=catalog" json:"catalog,omitempty"`
	Collation *uint64 `protobuf:"varint,8,opt,name=collation" json:"collation,omitempty"`
	// * displayed factional decimal digits for floating point and
	// fixed point numbers
	FractionalDigits *uint32 `protobuf:"varint,9,opt,name=fractional_digits,json=fractionalDigits" json:"fractional_digits,omitempty"`
	// * maximum count of displayable characters of .type
	Length *uint32 `protobuf:"varint,10,opt,name=length" json:"length,omitempty"`
	// * “.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
	Flags *uint32 `protobuf:"varint,11,opt,name=flags" json:"flags,omitempty"`
	// * 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
	ContentType *uint32 `protobuf:"varint,12,opt,name=content_type,json=contentType" json:"content_type,omitempty"`
	// contains filtered or unexported fields
}

* 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

func (*ColumnMetaData) Descriptor deprecated

func (*ColumnMetaData) Descriptor() ([]byte, []int)

Deprecated: Use ColumnMetaData.ProtoReflect.Descriptor instead.

func (*ColumnMetaData) GetCatalog

func (x *ColumnMetaData) GetCatalog() []byte

func (*ColumnMetaData) GetCollation

func (x *ColumnMetaData) GetCollation() uint64

func (*ColumnMetaData) GetContentType

func (x *ColumnMetaData) GetContentType() uint32

func (*ColumnMetaData) GetFlags

func (x *ColumnMetaData) GetFlags() uint32

func (*ColumnMetaData) GetFractionalDigits

func (x *ColumnMetaData) GetFractionalDigits() uint32

func (*ColumnMetaData) GetLength

func (x *ColumnMetaData) GetLength() uint32

func (*ColumnMetaData) GetName

func (x *ColumnMetaData) GetName() []byte

func (*ColumnMetaData) GetOriginalName

func (x *ColumnMetaData) GetOriginalName() []byte

func (*ColumnMetaData) GetOriginalTable

func (x *ColumnMetaData) GetOriginalTable() []byte

func (*ColumnMetaData) GetSchema

func (x *ColumnMetaData) GetSchema() []byte

func (*ColumnMetaData) GetTable

func (x *ColumnMetaData) GetTable() []byte

func (*ColumnMetaData) GetType

func (*ColumnMetaData) ProtoMessage

func (*ColumnMetaData) ProtoMessage()

func (*ColumnMetaData) ProtoReflect

func (x *ColumnMetaData) ProtoReflect() protoreflect.Message

func (*ColumnMetaData) Reset

func (x *ColumnMetaData) Reset()

func (*ColumnMetaData) String

func (x *ColumnMetaData) String() string

type ColumnMetaData_FieldType

type ColumnMetaData_FieldType int32
const (
	ColumnMetaData_SINT     ColumnMetaData_FieldType = 1
	ColumnMetaData_UINT     ColumnMetaData_FieldType = 2
	ColumnMetaData_DOUBLE   ColumnMetaData_FieldType = 5
	ColumnMetaData_FLOAT    ColumnMetaData_FieldType = 6
	ColumnMetaData_BYTES    ColumnMetaData_FieldType = 7
	ColumnMetaData_TIME     ColumnMetaData_FieldType = 10
	ColumnMetaData_DATETIME ColumnMetaData_FieldType = 12
	ColumnMetaData_SET      ColumnMetaData_FieldType = 15
	ColumnMetaData_ENUM     ColumnMetaData_FieldType = 16
	ColumnMetaData_BIT      ColumnMetaData_FieldType = 17
	ColumnMetaData_DECIMAL  ColumnMetaData_FieldType = 18
)

func (ColumnMetaData_FieldType) Descriptor

func (ColumnMetaData_FieldType) Enum

func (ColumnMetaData_FieldType) EnumDescriptor deprecated

func (ColumnMetaData_FieldType) EnumDescriptor() ([]byte, []int)

Deprecated: Use ColumnMetaData_FieldType.Descriptor instead.

func (ColumnMetaData_FieldType) Number

func (ColumnMetaData_FieldType) String

func (x ColumnMetaData_FieldType) String() string

func (ColumnMetaData_FieldType) Type

func (*ColumnMetaData_FieldType) UnmarshalJSON deprecated

func (x *ColumnMetaData_FieldType) UnmarshalJSON(b []byte) error

Deprecated: Do not use.

type ContentType_BYTES

type ContentType_BYTES int32

* 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 datatypes that rely on BLOB storage like image manipulation, seeking into complex types in BLOBs, ... more types will be added.

const (
	ContentType_BYTES_GEOMETRY ContentType_BYTES = 1
	ContentType_BYTES_JSON     ContentType_BYTES = 2
	ContentType_BYTES_XML      ContentType_BYTES = 3
)

func (ContentType_BYTES) Descriptor

func (ContentType_BYTES) Enum

func (ContentType_BYTES) EnumDescriptor deprecated

func (ContentType_BYTES) EnumDescriptor() ([]byte, []int)

Deprecated: Use ContentType_BYTES.Descriptor instead.

func (ContentType_BYTES) Number

func (ContentType_BYTES) String

func (x ContentType_BYTES) String() string

func (ContentType_BYTES) Type

func (*ContentType_BYTES) UnmarshalJSON deprecated

func (x *ContentType_BYTES) UnmarshalJSON(b []byte) error

Deprecated: Do not use.

type ContentType_DATETIME

type ContentType_DATETIME int32

* A hint about the higher-level encoding of a DATETIME field

|type |value |description | |---------|-------|-------------------------------------------| |DATE |0x0001 |DATETIME contains only date part | |DATETIME |0x0002 |DATETIME contains both date and time parts |

const (
	ContentType_DATETIME_DATE     ContentType_DATETIME = 1
	ContentType_DATETIME_DATETIME ContentType_DATETIME = 2
)

func (ContentType_DATETIME) Descriptor

func (ContentType_DATETIME) Enum

func (ContentType_DATETIME) EnumDescriptor deprecated

func (ContentType_DATETIME) EnumDescriptor() ([]byte, []int)

Deprecated: Use ContentType_DATETIME.Descriptor instead.

func (ContentType_DATETIME) Number

func (ContentType_DATETIME) String

func (x ContentType_DATETIME) String() string

func (ContentType_DATETIME) Type

func (*ContentType_DATETIME) UnmarshalJSON deprecated

func (x *ContentType_DATETIME) UnmarshalJSON(b []byte) error

Deprecated: Do not use.

type FetchDone

type FetchDone struct {
	// contains filtered or unexported fields
}

* All resultsets are finished

func (*FetchDone) Descriptor deprecated

func (*FetchDone) Descriptor() ([]byte, []int)

Deprecated: Use FetchDone.ProtoReflect.Descriptor instead.

func (*FetchDone) ProtoMessage

func (*FetchDone) ProtoMessage()

func (*FetchDone) ProtoReflect

func (x *FetchDone) ProtoReflect() protoreflect.Message

func (*FetchDone) Reset

func (x *FetchDone) Reset()

func (*FetchDone) String

func (x *FetchDone) String() string

type FetchDoneMoreOutParams

type FetchDoneMoreOutParams struct {
	// contains filtered or unexported fields
}

* Resultsets are finished, OUT paramset is next:

func (*FetchDoneMoreOutParams) Descriptor deprecated

func (*FetchDoneMoreOutParams) Descriptor() ([]byte, []int)

Deprecated: Use FetchDoneMoreOutParams.ProtoReflect.Descriptor instead.

func (*FetchDoneMoreOutParams) ProtoMessage

func (*FetchDoneMoreOutParams) ProtoMessage()

func (*FetchDoneMoreOutParams) ProtoReflect

func (x *FetchDoneMoreOutParams) ProtoReflect() protoreflect.Message

func (*FetchDoneMoreOutParams) Reset

func (x *FetchDoneMoreOutParams) Reset()

func (*FetchDoneMoreOutParams) String

func (x *FetchDoneMoreOutParams) String() string

type FetchDoneMoreResultsets

type FetchDoneMoreResultsets struct {
	// contains filtered or unexported fields
}

* Resultset and out-params are finished, but more resultsets available

func (*FetchDoneMoreResultsets) Descriptor deprecated

func (*FetchDoneMoreResultsets) Descriptor() ([]byte, []int)

Deprecated: Use FetchDoneMoreResultsets.ProtoReflect.Descriptor instead.

func (*FetchDoneMoreResultsets) ProtoMessage

func (*FetchDoneMoreResultsets) ProtoMessage()

func (*FetchDoneMoreResultsets) ProtoReflect

func (x *FetchDoneMoreResultsets) ProtoReflect() protoreflect.Message

func (*FetchDoneMoreResultsets) Reset

func (x *FetchDoneMoreResultsets) Reset()

func (*FetchDoneMoreResultsets) String

func (x *FetchDoneMoreResultsets) String() string

type FetchSuspended

type FetchSuspended struct {
	// contains filtered or unexported fields
}

* Cursor is opened; still, the execution of PrepFetch or PrepExecute ended

func (*FetchSuspended) Descriptor deprecated

func (*FetchSuspended) Descriptor() ([]byte, []int)

Deprecated: Use FetchSuspended.ProtoReflect.Descriptor instead.

func (*FetchSuspended) ProtoMessage

func (*FetchSuspended) ProtoMessage()

func (*FetchSuspended) ProtoReflect

func (x *FetchSuspended) ProtoReflect() protoreflect.Message

func (*FetchSuspended) Reset

func (x *FetchSuspended) Reset()

func (*FetchSuspended) String

func (x *FetchSuspended) String() string

type Row

type Row struct {
	Field [][]byte `protobuf:"bytes,1,rep,name=field" json:"field,omitempty"`
	// contains filtered or unexported fields
}

* Row in a Resultset.

A row is represented as a list of fields encoded as byte blobs. Value of each field is encoded as sequence of bytes using encoding appropriate for the type of the value given by “ColumnMetadata“, as specified in the @ref Mysqlx::Resultset::ColumnMetaData description.

func (*Row) Descriptor deprecated

func (*Row) Descriptor() ([]byte, []int)

Deprecated: Use Row.ProtoReflect.Descriptor instead.

func (*Row) GetField

func (x *Row) GetField() [][]byte

func (*Row) ProtoMessage

func (*Row) ProtoMessage()

func (*Row) ProtoReflect

func (x *Row) ProtoReflect() protoreflect.Message

func (*Row) Reset

func (x *Row) Reset()

func (*Row) String

func (x *Row) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL