Protocol data types
Contents
List of possible field types
Unknown type :
byte<1> | Fixed length bytes |
byte<lenenc> | Length encoded bytes |
Integer type :
int<1> | Fixed length integers |
int<lenenc> | Length encoded integers |
String type :
string<fix> | Fixed length strings |
string<NUL> | Null terminated strings |
string<lenenc> | Length encoded strings |
string<EOF> | end of file length Strings |
Fixed length bytes
Notation is "byte<n>"
A fixed length bytes stores the value in a series of n bytes.
Fixed length integers
Notation is "int<n>"
A fixed length integer stores the value in a series of n bytes. The least significant byte is always the first byte (little-endian format).
Example
An int<4> with value 2 is stored as
02 00 00 00
Length encoded integers
notation is "int<lenenc>" An integer which depending on its value is represented by n bytes.
The first byte represents the size of the integer:
If the value of first byte is
- < 0xFB - Integer value is this 1 byte integer
- 0xFB - NULL value
- 0xFC - Integer value is encoded in the next 2 bytes (3 bytes total)
- 0xFD - Integer value is encoded in the next 3 bytes (4 bytes total)
- 0xFE - Integer value is encoded in the next 8 bytes (9 bytes total)
Fixed length strings
notation is "string<fix>"
Fixed length strings have a known hardcoded length.
Null terminated strings
notation is "string<NUL>"
Null terminated strings have a variable size and are terminated by a 0x00 character
Length encoded strings
notation is "string<lenenc>" Length encoded strings are prefixed by a length encoded integer which describes the length of the string, followed by the string value.
Example
An string of 512 "a" will be encoded in 515 bytes :
fc 00 02 97 97 97 97 97 97 97 97 97 97 97 97 97 | ² .. a a a a a a a a a a a a a |
...
End of file length strings
notation is "string<EOF>" Strings which will be calculated by the packet remaining length . For an example see COM_STMT_PREPARE packet.