diff --git a/mysql-test/suite/binlog_encryption/rpl_typeconv.result b/mysql-test/suite/binlog_encryption/rpl_typeconv.result index 988962ff6f0..fa7deca3cff 100644 --- a/mysql-test/suite/binlog_encryption/rpl_typeconv.result +++ b/mysql-test/suite/binlog_encryption/rpl_typeconv.result @@ -7,9 +7,9 @@ TestNo INT AUTO_INCREMENT PRIMARY KEY, Source TEXT, Target TEXT, Flags TEXT, -On_Master TEXT, -On_Slave TEXT, -Expected TEXT, +On_Master LONGTEXT, +On_Slave LONGTEXT, +Expected LONGTEXT, Compare INT, Error TEXT); SELECT @@global.slave_type_conversions; @@ -39,18 +39,34 @@ ALL_LOSSY,ALL_NON_LOSSY connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS=''; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = '' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY'; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = 'ALL_NON_LOSSY' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY'; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = 'ALL_LOSSY' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY,ALL_NON_LOSSY'; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = 'ALL_LOSSY,ALL_NON_LOSSY' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; **** Result of conversions **** @@ -176,6 +192,26 @@ BIT(5) BIT(6) BIT(6) BIT(5) BIT(5) BIT(12) BIT(12) BIT(5) +TINYBLOB COMPRE TINYBLOB +TINYBLOB COMPRE BLOB +TINYBLOB COMPRE MEDIUMBLOB +TINYBLOB COMPRE LONGBLOB +TINYBLOB COMPRE VARBINARY(255) +BLOB COMPRESSED TINYBLOB +BLOB COMPRESSED BLOB +BLOB COMPRESSED MEDIUMBLOB +BLOB COMPRESSED LONGBLOB +BLOB COMPRESSED VARBINARY(65500 +MEDIUMBLOB COMP TINYBLOB +MEDIUMBLOB COMP BLOB +MEDIUMBLOB COMP MEDIUMBLOB +MEDIUMBLOB COMP LONGBLOB +MEDIUMBLOB COMP VARBINARY(65500 +LONGBLOB COMPRE TINYBLOB +LONGBLOB COMPRE BLOB +LONGBLOB COMPRE MEDIUMBLOB +LONGBLOB COMPRE LONGBLOB +LONGBLOB COMPRE VARBINARY(65500 TINYBLOB TINYBLOB ALL_NON_LOSSY TINYBLOB BLOB ALL_NON_LOSSY TINYBLOB MEDIUMBLOB ALL_NON_LOSSY @@ -297,6 +333,26 @@ BIT(5) BIT(6) ALL_NON_LOSSY BIT(6) BIT(5) ALL_NON_LOSSY BIT(5) BIT(12) ALL_NON_LOSSY BIT(12) BIT(5) ALL_NON_LOSSY +TINYBLOB COMPRE TINYBLOB ALL_NON_LOSSY +TINYBLOB COMPRE BLOB ALL_NON_LOSSY +TINYBLOB COMPRE MEDIUMBLOB ALL_NON_LOSSY +TINYBLOB COMPRE LONGBLOB ALL_NON_LOSSY +TINYBLOB COMPRE VARBINARY(255) ALL_NON_LOSSY +BLOB COMPRESSED TINYBLOB ALL_NON_LOSSY +BLOB COMPRESSED BLOB ALL_NON_LOSSY +BLOB COMPRESSED MEDIUMBLOB ALL_NON_LOSSY +BLOB COMPRESSED LONGBLOB ALL_NON_LOSSY +BLOB COMPRESSED VARBINARY(65500 ALL_NON_LOSSY +MEDIUMBLOB COMP TINYBLOB ALL_NON_LOSSY +MEDIUMBLOB COMP BLOB ALL_NON_LOSSY +MEDIUMBLOB COMP MEDIUMBLOB ALL_NON_LOSSY +MEDIUMBLOB COMP LONGBLOB ALL_NON_LOSSY +MEDIUMBLOB COMP VARBINARY(65500 ALL_NON_LOSSY +LONGBLOB COMPRE TINYBLOB ALL_NON_LOSSY +LONGBLOB COMPRE BLOB ALL_NON_LOSSY +LONGBLOB COMPRE MEDIUMBLOB ALL_NON_LOSSY +LONGBLOB COMPRE LONGBLOB ALL_NON_LOSSY +LONGBLOB COMPRE VARBINARY(65500 ALL_NON_LOSSY TINYBLOB TINYBLOB ALL_LOSSY TINYBLOB BLOB ALL_LOSSY TINYBLOB MEDIUMBLOB ALL_LOSSY @@ -418,6 +474,26 @@ BIT(5) BIT(6) ALL_LOSSY BIT(6) BIT(5) ALL_LOSSY BIT(5) BIT(12) ALL_LOSSY BIT(12) BIT(5) ALL_LOSSY +TINYBLOB COMPRE TINYBLOB ALL_LOSSY +TINYBLOB COMPRE BLOB ALL_LOSSY +TINYBLOB COMPRE MEDIUMBLOB ALL_LOSSY +TINYBLOB COMPRE LONGBLOB ALL_LOSSY +TINYBLOB COMPRE VARBINARY(255) ALL_LOSSY +BLOB COMPRESSED TINYBLOB ALL_LOSSY +BLOB COMPRESSED BLOB ALL_LOSSY +BLOB COMPRESSED MEDIUMBLOB ALL_LOSSY +BLOB COMPRESSED LONGBLOB ALL_LOSSY +BLOB COMPRESSED VARBINARY(65500 ALL_LOSSY +MEDIUMBLOB COMP TINYBLOB ALL_LOSSY +MEDIUMBLOB COMP BLOB ALL_LOSSY +MEDIUMBLOB COMP MEDIUMBLOB ALL_LOSSY +MEDIUMBLOB COMP LONGBLOB ALL_LOSSY +MEDIUMBLOB COMP VARBINARY(65500 ALL_LOSSY +LONGBLOB COMPRE TINYBLOB ALL_LOSSY +LONGBLOB COMPRE BLOB ALL_LOSSY +LONGBLOB COMPRE MEDIUMBLOB ALL_LOSSY +LONGBLOB COMPRE LONGBLOB ALL_LOSSY +LONGBLOB COMPRE VARBINARY(65500 ALL_LOSSY TINYBLOB TINYBLOB ALL_LOSSY,ALL_NON_LOSSY TINYBLOB BLOB ALL_LOSSY,ALL_NON_LOSSY TINYBLOB MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY @@ -539,6 +615,26 @@ BIT(5) BIT(6) ALL_LOSSY,ALL_NON_LOSSY BIT(6) BIT(5) ALL_LOSSY,ALL_NON_LOSSY BIT(5) BIT(12) ALL_LOSSY,ALL_NON_LOSSY BIT(12) BIT(5) ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE BLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE VARBINARY(255) ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED BLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP BLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE BLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY DROP TABLE type_conversions; call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t1. cannot be converted from type.* error.* 1677"); connection master; diff --git a/mysql-test/suite/rpl/include/rpl_typeconv.inc b/mysql-test/suite/rpl/include/rpl_typeconv.inc index 6d639087e05..9e566258882 100644 --- a/mysql-test/suite/rpl/include/rpl_typeconv.inc +++ b/mysql-test/suite/rpl/include/rpl_typeconv.inc @@ -14,9 +14,9 @@ CREATE TABLE type_conversions ( Source TEXT, Target TEXT, Flags TEXT, - On_Master TEXT, - On_Slave TEXT, - Expected TEXT, + On_Master LONGTEXT, + On_Slave LONGTEXT, + Expected LONGTEXT, Compare INT, Error TEXT); diff --git a/mysql-test/suite/rpl/include/type_conversions.test b/mysql-test/suite/rpl/include/type_conversions.test index c10cfe57fda..50fec23f6c9 100644 --- a/mysql-test/suite/rpl/include/type_conversions.test +++ b/mysql-test/suite/rpl/include/type_conversions.test @@ -876,5 +876,175 @@ let $can_convert = $if_is_lossy; source suite/rpl/include/check_type.inc; +--echo # +--echo # MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +--echo # + +# This is to make sure that the compressed data is longer than 64K +SET column_compression_threshold=16*256*256; + +# TINYBLOB COMPRESSED + +let $source_type= TINYBLOB COMPRESSED; +let $target_type= TINYBLOB; +let $source_value= REPEAT('a',250); +let $target_value= REPEAT('a',250); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= TINYBLOB COMPRESSED; +let $target_type= BLOB; +let $source_value= REPEAT('a',250); +let $target_value= REPEAT('a',250); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= TINYBLOB COMPRESSED; +let $target_type= MEDIUMBLOB; +let $source_value= REPEAT('a',250); +let $target_value= REPEAT('a',250); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= TINYBLOB COMPRESSED; +let $target_type= LONGBLOB; +let $source_value= REPEAT('a',250); +let $target_value= REPEAT('a',250); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= TINYBLOB COMPRESSED; +let $target_type= VARBINARY(255); +let $source_value= REPEAT('a',250); +let $target_value= REPEAT('a',250); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + + +# BLOB COMPRESSED + +let $source_type= BLOB COMPRESSED; +let $target_type= TINYBLOB; +let $source_value= REPEAT('a',64000); +let $target_value= REPEAT('a',255); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= BLOB COMPRESSED; +let $target_type= BLOB; +let $source_value= REPEAT('a',64000); +let $target_value= REPEAT('a',64000); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= BLOB COMPRESSED; +let $target_type= MEDIUMBLOB; +let $source_value= REPEAT('a',64000); +let $target_value= REPEAT('a',64000); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= BLOB COMPRESSED; +let $target_type= LONGBLOB; +let $source_value= REPEAT('a',64000); +let $target_value= REPEAT('a',64000); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +let $source_type= BLOB COMPRESSED; +let $target_type= VARBINARY(65500); +let $source_value= REPEAT('a',65500); +let $target_value= REPEAT('a',65500); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + + +# MEDIUMBLOB COMPRESSED + +let $source_type= MEDIUMBLOB COMPRESSED; +let $target_type= TINYBLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',255); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= MEDIUMBLOB COMPRESSED; +let $target_type= BLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',65535); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= MEDIUMBLOB COMPRESSED; +let $target_type= MEDIUMBLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',66000); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= MEDIUMBLOB COMPRESSED; +let $target_type= LONGBLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',66000); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= MEDIUMBLOB COMPRESSED; +let $target_type= VARBINARY(65500); +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',65500); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + + +# LONGBLOB COMPRESSED + +let $source_type= LONGBLOB COMPRESSED; +let $target_type= TINYBLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',255); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= LONGBLOB COMPRESSED; +let $target_type= BLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',65535); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= LONGBLOB COMPRESSED; +let $target_type= MEDIUMBLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',66000); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= LONGBLOB COMPRESSED; +let $target_type= LONGBLOB; +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',66000); +let $can_convert = $if_is_non_lossy; +source suite/rpl/include/check_type.inc; + +# This failed before the fix +let $source_type= LONGBLOB COMPRESSED; +let $target_type= VARBINARY(65500); +let $source_value= REPEAT('a',66000); +let $target_value= REPEAT('a',65500); +let $can_convert = $if_is_lossy; +source suite/rpl/include/check_type.inc; + +SET column_compression_threshold=DEFAULT; +--echo # End of MDEV-15833 + + --source include/rpl_reset.inc enable_query_log; diff --git a/mysql-test/suite/rpl/r/rpl_typeconv.result b/mysql-test/suite/rpl/r/rpl_typeconv.result index 988962ff6f0..fa7deca3cff 100644 --- a/mysql-test/suite/rpl/r/rpl_typeconv.result +++ b/mysql-test/suite/rpl/r/rpl_typeconv.result @@ -7,9 +7,9 @@ TestNo INT AUTO_INCREMENT PRIMARY KEY, Source TEXT, Target TEXT, Flags TEXT, -On_Master TEXT, -On_Slave TEXT, -Expected TEXT, +On_Master LONGTEXT, +On_Slave LONGTEXT, +Expected LONGTEXT, Compare INT, Error TEXT); SELECT @@global.slave_type_conversions; @@ -39,18 +39,34 @@ ALL_LOSSY,ALL_NON_LOSSY connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS=''; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = '' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY'; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = 'ALL_NON_LOSSY' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY'; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = 'ALL_LOSSY' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_LOSSY,ALL_NON_LOSSY'; **** Running tests with @@SLAVE_TYPE_CONVERSIONS = 'ALL_LOSSY,ALL_NON_LOSSY' **** +# +# MDEV-15821 Row format replication from LONGBLOB COMPRESSED to LONGBLOB does not work +# +# End of MDEV-15833 include/rpl_reset.inc connection slave; **** Result of conversions **** @@ -176,6 +192,26 @@ BIT(5) BIT(6) BIT(6) BIT(5) BIT(5) BIT(12) BIT(12) BIT(5) +TINYBLOB COMPRE TINYBLOB +TINYBLOB COMPRE BLOB +TINYBLOB COMPRE MEDIUMBLOB +TINYBLOB COMPRE LONGBLOB +TINYBLOB COMPRE VARBINARY(255) +BLOB COMPRESSED TINYBLOB +BLOB COMPRESSED BLOB +BLOB COMPRESSED MEDIUMBLOB +BLOB COMPRESSED LONGBLOB +BLOB COMPRESSED VARBINARY(65500 +MEDIUMBLOB COMP TINYBLOB +MEDIUMBLOB COMP BLOB +MEDIUMBLOB COMP MEDIUMBLOB +MEDIUMBLOB COMP LONGBLOB +MEDIUMBLOB COMP VARBINARY(65500 +LONGBLOB COMPRE TINYBLOB +LONGBLOB COMPRE BLOB +LONGBLOB COMPRE MEDIUMBLOB +LONGBLOB COMPRE LONGBLOB +LONGBLOB COMPRE VARBINARY(65500 TINYBLOB TINYBLOB ALL_NON_LOSSY TINYBLOB BLOB ALL_NON_LOSSY TINYBLOB MEDIUMBLOB ALL_NON_LOSSY @@ -297,6 +333,26 @@ BIT(5) BIT(6) ALL_NON_LOSSY BIT(6) BIT(5) ALL_NON_LOSSY BIT(5) BIT(12) ALL_NON_LOSSY BIT(12) BIT(5) ALL_NON_LOSSY +TINYBLOB COMPRE TINYBLOB ALL_NON_LOSSY +TINYBLOB COMPRE BLOB ALL_NON_LOSSY +TINYBLOB COMPRE MEDIUMBLOB ALL_NON_LOSSY +TINYBLOB COMPRE LONGBLOB ALL_NON_LOSSY +TINYBLOB COMPRE VARBINARY(255) ALL_NON_LOSSY +BLOB COMPRESSED TINYBLOB ALL_NON_LOSSY +BLOB COMPRESSED BLOB ALL_NON_LOSSY +BLOB COMPRESSED MEDIUMBLOB ALL_NON_LOSSY +BLOB COMPRESSED LONGBLOB ALL_NON_LOSSY +BLOB COMPRESSED VARBINARY(65500 ALL_NON_LOSSY +MEDIUMBLOB COMP TINYBLOB ALL_NON_LOSSY +MEDIUMBLOB COMP BLOB ALL_NON_LOSSY +MEDIUMBLOB COMP MEDIUMBLOB ALL_NON_LOSSY +MEDIUMBLOB COMP LONGBLOB ALL_NON_LOSSY +MEDIUMBLOB COMP VARBINARY(65500 ALL_NON_LOSSY +LONGBLOB COMPRE TINYBLOB ALL_NON_LOSSY +LONGBLOB COMPRE BLOB ALL_NON_LOSSY +LONGBLOB COMPRE MEDIUMBLOB ALL_NON_LOSSY +LONGBLOB COMPRE LONGBLOB ALL_NON_LOSSY +LONGBLOB COMPRE VARBINARY(65500 ALL_NON_LOSSY TINYBLOB TINYBLOB ALL_LOSSY TINYBLOB BLOB ALL_LOSSY TINYBLOB MEDIUMBLOB ALL_LOSSY @@ -418,6 +474,26 @@ BIT(5) BIT(6) ALL_LOSSY BIT(6) BIT(5) ALL_LOSSY BIT(5) BIT(12) ALL_LOSSY BIT(12) BIT(5) ALL_LOSSY +TINYBLOB COMPRE TINYBLOB ALL_LOSSY +TINYBLOB COMPRE BLOB ALL_LOSSY +TINYBLOB COMPRE MEDIUMBLOB ALL_LOSSY +TINYBLOB COMPRE LONGBLOB ALL_LOSSY +TINYBLOB COMPRE VARBINARY(255) ALL_LOSSY +BLOB COMPRESSED TINYBLOB ALL_LOSSY +BLOB COMPRESSED BLOB ALL_LOSSY +BLOB COMPRESSED MEDIUMBLOB ALL_LOSSY +BLOB COMPRESSED LONGBLOB ALL_LOSSY +BLOB COMPRESSED VARBINARY(65500 ALL_LOSSY +MEDIUMBLOB COMP TINYBLOB ALL_LOSSY +MEDIUMBLOB COMP BLOB ALL_LOSSY +MEDIUMBLOB COMP MEDIUMBLOB ALL_LOSSY +MEDIUMBLOB COMP LONGBLOB ALL_LOSSY +MEDIUMBLOB COMP VARBINARY(65500 ALL_LOSSY +LONGBLOB COMPRE TINYBLOB ALL_LOSSY +LONGBLOB COMPRE BLOB ALL_LOSSY +LONGBLOB COMPRE MEDIUMBLOB ALL_LOSSY +LONGBLOB COMPRE LONGBLOB ALL_LOSSY +LONGBLOB COMPRE VARBINARY(65500 ALL_LOSSY TINYBLOB TINYBLOB ALL_LOSSY,ALL_NON_LOSSY TINYBLOB BLOB ALL_LOSSY,ALL_NON_LOSSY TINYBLOB MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY @@ -539,6 +615,26 @@ BIT(5) BIT(6) ALL_LOSSY,ALL_NON_LOSSY BIT(6) BIT(5) ALL_LOSSY,ALL_NON_LOSSY BIT(5) BIT(12) ALL_LOSSY,ALL_NON_LOSSY BIT(12) BIT(5) ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE BLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +TINYBLOB COMPRE VARBINARY(255) ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED BLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +BLOB COMPRESSED VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP BLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +MEDIUMBLOB COMP VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE TINYBLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE BLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE MEDIUMBLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE LONGBLOB ALL_LOSSY,ALL_NON_LOSSY +LONGBLOB COMPRE VARBINARY(65500 ALL_LOSSY,ALL_NON_LOSSY DROP TABLE type_conversions; call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t1. cannot be converted from type.* error.* 1677"); connection master; diff --git a/sql/sql_type.cc b/sql/sql_type.cc index 3292838b9cc..6354dc603fd 100644 --- a/sql/sql_type.cc +++ b/sql/sql_type.cc @@ -1392,10 +1392,13 @@ Field *Type_handler_blob_compressed::make_conversion_table_field(TABLE *table, const Field *target) const { + uint pack_length= metadata & 0x00ff; + if (pack_length < 1 || pack_length > 4) + return NULL; // Broken binary log? return new(table->in_use->mem_root) Field_blob_compressed(NULL, (uchar *) "", 1, Field::NONE, &empty_clex_str, - table->s, 2, target->charset(), + table->s, pack_length, target->charset(), zlib_compression_method); }