Status of this subsection: finished, not reviewed, not fully implemented 2009-10-21
The sets of columns recorded in the BI and AI are determined by the value of binlog_row_image. To specify the sets of columns, we define the PKE (for Primary Key Equivalent), as follows:
If a PK exists, the PKE is equal to the PK.
Otherwise, if there exists a UK where all columns have the NOT NULL attribute, then that is the PKE (if there are more than one such UKs, then one is chosen arbitrarily).
Otherwise, the PKE is equal to the set of all columns.
The set of columns included in the BI and AI are defined as in the following tables:
write event
-
binlog_row_image
Before image
After image
minimal
-
All columns where a value was specified, and the autoincrement column if there is one
noblob
-
All columns where a value was specified, and the autoincrement column if there is one, and all non-blob columns
full
-
All columns
update event
-
binlog_row_image
Before image
After image
minimal
PKE
All columns where a value was specified
noblob
PKE + all non-blob columns
All columns where a value was specified, and all non-blob columns
full
All columns
All columns
delete event
-
binlog_row_image
Before image
After image
minimal
PKE
-
noblob
PKE + all non-blob columns
-
full
All columns
-
Cf. WL#5092.