TABLE_MAP_EVENT
Used for row-based binary logging beginning (binlog_format=ROW or MIXED)
This event precedes each row operation event and maps a table definition to a number, where the table definition consists of database and table names.
Header
Event Type is 19 (0x13)
Fields
Fixed data part:
Variable data part:
uint<1> Database name length.
string The database name (null-terminated).
uint<1> Table name length.
string The table name (null-terminated).
int The number of columns in the table.
byte An array of 'n' column types, one byte per column.
int The length of the metadata block.
byte The metadata block;
byte Bit-field indicating whether each column can be NULL, one bit per column.
if (more_data_available)
byte Optional metadata block;
Metadata block
The metadata block contains type specific metadata information for each column
Type
Length
Description
MYSQL_TYPE_BLOB
1
Number of bytes for length: e.g. 4 bytes means length is stored in a 4 byte integer)
MYSQL_TYPE_DATETIME2
1
Length of microseconds
MYSQL_TYPE_DECIMAL
2
Not in use anymore
MYSQL_TYPE_DOUBLE ,MYSQL_TYPE_FLOAT
1
length (4 or 8 bytes
MYSQL_TYPE_STRING
2
1st byte contains type (MYSQL_TYPE_STRING, MYSQL_TYPE_ENUM, or MYSQL_TYPE_SET, 2nd byte contains length
MYSQL_TYPE_NEWDECIMAL
2
Precision, Scale
MYSQL_TYPE_TIME2
1
Length of microseconds
MYSQL_TYPE_TIMESTAMP2
1
Length of microseconds
MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VAR_STRING
2
Defined varchar length. If the value is > 255, length is stored in 2 bytes, otherwise 1 byte
Optional metadata block
Optional metadata will be available if global server variable BINLOG_ROW_METADATA was set to values MIN or FULL.
The metadata block consists of one or more of the following blocks:
Optional metadata types:
Name
Value
Mode
Description
SIGNEDNESS
1
MIN
Data contains a bitmap indicating which integer columns are signed
DEFAULT_CHARSET
2
MIN
Character set of string columns, used if most columns have the same result. Columns with other character sets will follow as pair (column_index, collation number).
COLUMN_CHARSET
3
MIN
Character set of columns, used if columns have different character sets. Returned as a sequence of collation numbers.
COLUMN_NAME
4
FULL
List of Column names, the first byte specifies the length of the column name
SET_STR_VALUE
5
FULL
List of set values: First byte is the number of different values, followed by length/value pairs.
ENUM_STR_VALUE
6
FULL
Same as SET_STR_VALUE. Since ENUM values might have up to 0xFFFF members, the number of values is a length encoded integer.
GEOMETRY_TYPE
7
FULL
A sequence of bytes repesenting the type of GEOMETRY columns: 0 = GEOMETRY, 1 = POINT, 2 = LINESTRING, 3 = POLYGON, 4=MULTIPOINT, 5 = MULTILINESTRING, 6 = MULTIPOLYGON, 7 = GEOMETRYCOLLECTION
SIMPLE_PRIMARY_KEY
8
FULL
A sequence of length encoded column indexes.
PRIMARY_KEY_WITH_PREFIX
9
FULL
A sequence of length encoded column indexes and prefix lengths.
ENUM_AND_SET_DEFAULT_CHARSET
10
FULL
The default character set number used for ENUM and SET columns
ENUM_AND_SET_COLUMN_CHARSET
11
FULL
Character set of ENUM and SET columns, used if these columns have different character sets. Returned as a sequence of collation numbers.
Example From mysqlbinlog
# at 847
#171206 13:43:00 server id 10124 end_log_pos 892 CRC32 0xbe3c6b05 Table_map: `test`.`t4` mapped to number 33
# at 892
Complete Event
d4 e5 27 5a 13 8c 27 00 00 2d 00 00 00 7c 03 00 ..'Z..'..-...|..
00 00 00 21 00 00 00 00 00 01 00 04 74 65 73 74 ...!........test
00 02 74 34 00 01 03 01 01 05 6b 3c be ..t4......k<.
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?