This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

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.

  • Event Type is 19 (0x13)

Fields

Fixed data part:

Variable data part:

  • uint<1> Database name length.
  • string<NUL> The database name (null-terminated).
  • uint<1> Table name length.
  • string<NUL> The table name (null-terminated).
  • int<lenenc> The number of columns in the table.
  • byte<n> An array of 'n' column types, one byte per column.
  • int<lenenc> The length of the metadata block.
  • byte<n> The metadata block;
  • byte<n> Bit-field indicating whether each column can be NULL, one bit per column.
  • if (more_data_available)

Metadata block

The metadata block contains type specific metadata information for each column

TypeLengthDescription
MYSQL_TYPE_BLOB1Number of bytes for length: e.g. 4 bytes means length is stored in a 4 byte integer)
MYSQL_TYPE_DATETIME21Length of microseconds
MYSQL_TYPE_DECIMAL2Not in use anymore
MYSQL_TYPE_DOUBLE ,MYSQL_TYPE_FLOAT1length (4 or 8 bytes
MYSQL_TYPE_STRING21st byte contains type (MYSQL_TYPE_STRING, MYSQL_TYPE_ENUM, or MYSQL_TYPE_SET, 2nd byte contains length
MYSQL_TYPE_NEWDECIMAL2Precision, Scale
MYSQL_TYPE_TIME21Length of microseconds
MYSQL_TYPE_TIMESTAMP21Length of microseconds
MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VAR_STRING2Defined 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:

NameValueModeDescription
SIGNEDNESS1MINData contains a bitmap indicating which integer columns are signed
DEFAULT_CHARSET2MINCharacter 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_CHARSET3MINCharacter set of columns, used if columns have different character sets. Returned as a sequence of collation numbers.
COLUMN_NAME4FULLList of Column names, the first byte specifies the length of the column name
SET_STR_VALUE5FULLList of set values: First byte is the number of different values, followed by length/value pairs.
ENUM_STR_VALUE6FULLSame as SET_STR_VALUE. Since ENUM values might have up to 0xFFFF members, the number of values is a length encoded integer.
GEOMETRY_TYPE7FULLA 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_KEY8FULLA sequence of length encoded column indexes.
PRIMARY_KEY_WITH_PREFIX9FULLA sequence of length encoded column indexes and prefix lengths.
ENUM_AND_SET_DEFAULT_CHARSET10FULLThe default character set number used for ENUM and SET columns
ENUM_AND_SET_COLUMN_CHARSET11FULLCharacter 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<.
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.