1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-25277: mysqlbinlog --verbose cannot read row events with compressed columns: Don't know how to handle column type: 140

Problem:
=======
Mysqlbinlog cannot show the type of a compressed
column when two levels of verbosity is provided.

Solution:
========
Extend the log event printing logic to handle and
tag compressed types.

Behavioral Changes:
==================
  Old: When mysqlbinlog is called in verbose mode and
the database uses compressed columns, an error is
returned to the user.

  New: The output will append “ COMPRESSED” on the
type of compressed columns

Reviewed By
===========
Andrei Elkin <andrei.elkin@mariadb.com>
This commit is contained in:
Brandon Nesterenko
2021-06-03 11:24:34 -06:00
parent 53c4be7bc0
commit b194c83b7b
3 changed files with 97 additions and 5 deletions

View File

@@ -0,0 +1,15 @@
CREATE TABLE t1 (a TEXT, ac TEXT COMPRESSED, b TINYTEXT, bc TINYTEXT COMPRESSED, c MEDIUMTEXT, cc MEDIUMTEXT COMPRESSED, d LONGTEXT, dc LONGTEXT COMPRESSED, e VARCHAR(10), ec VARCHAR(10) COMPRESSED);
# Isolate row event into its own binary log
FLUSH BINARY LOGS;
INSERT INTO t1 VALUES ('mya', 'myac', 'myb', 'mybc', 'myc', 'mycc', 'myd', 'mydc', 'mye', 'myec');
FLUSH BINARY LOGS;
# MYSQLBINLOG --base64-output=decode-rows -vv datadir/binlog_file --result-file=result_binlog
include/assert_grep.inc [Ensure compressed TEXT fields are annotated correctly]
include/assert_grep.inc [Ensure compressed TINYTEXT fields are annotated correctly]
include/assert_grep.inc [Ensure compressed MEDIUMTEXT fields are annotated correctly]
include/assert_grep.inc [Ensure compressed LONGTEXT fields are annotated correctly]
include/assert_grep.inc [Ensure compressed VARSTRING fields are annotated correctly]
include/assert_grep.inc [Ensure COMPRESSED only shows up for corresponding fields]
include/assert_grep.inc [Ensure non-compressed TEXT fields are annotated correctly]
include/assert_grep.inc [Ensure non-compressed VARSTRING fields are annotated correctly]
DROP TABLE t1;