1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-02 09:41:40 +03:00

BUG#49836: Replication of geometric fields is broken after WL#5151

Metadata for geometric fields was not being properly stored by
the slave in its the table definition. This happened because
MYSQL_TYPE_GEOMETRY was not included in the 'switch... case' that
handles field metadata according to the field type. Therefore, it
would default to 0, leading to always have a mismatch between
master's field and slave fields'. 

We fix this by deploying the missing 'case MYSQL_TYPE_GEOMETRY:'.
This commit is contained in:
Luis Soares
2009-12-24 01:07:35 +00:00
parent 62b10996f2
commit b85a186c66
4 changed files with 211 additions and 5 deletions

View File

@@ -12,6 +12,142 @@ connection slave;
let $if_is_lossy = `SELECT FIND_IN_SET('ALL_LOSSY', @@SLAVE_TYPE_CONVERSIONS)`;
let $if_is_non_lossy = `SELECT FIND_IN_SET('ALL_NON_LOSSY', @@SLAVE_TYPE_CONVERSIONS)`;
# TINYBLOB
let $source_type = TINYBLOB;
let $target_type = TINYBLOB;
let $source_value = 'aaa';
let $target_value = 'aaa';
let $can_convert = 1;
source extra/rpl_tests/check_type.inc;
let $source_type= TINYBLOB;
let $target_type= BLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_non_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= TINYBLOB;
let $target_type= MEDIUMBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_non_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= TINYBLOB;
let $target_type= LONGBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_non_lossy;
source extra/rpl_tests/check_type.inc;
# BLOB
let $source_type = BLOB;
let $target_type = TINYBLOB;
let $source_value = 'aaa';
let $target_value = 'aaa';
let $can_convert = $if_is_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= BLOB;
let $target_type= BLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= 1;
source extra/rpl_tests/check_type.inc;
let $source_type= BLOB;
let $target_type= MEDIUMBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_non_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= BLOB;
let $target_type= LONGBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_non_lossy;
source extra/rpl_tests/check_type.inc;
# MEDIUMBLOB
let $source_type = MEDIUMBLOB;
let $target_type = TINYBLOB;
let $source_value = 'aaa';
let $target_value = 'aaa';
let $can_convert = $if_is_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= MEDIUMBLOB;
let $target_type= BLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= MEDIUMBLOB;
let $target_type= MEDIUMBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= 1;
source extra/rpl_tests/check_type.inc;
let $source_type= MEDIUMBLOB;
let $target_type= LONGBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_non_lossy;
source extra/rpl_tests/check_type.inc;
# LONGBLOB
let $source_type = LONGBLOB;
let $target_type = TINYBLOB;
let $source_value = 'aaa';
let $target_value = 'aaa';
let $can_convert = $if_is_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= LONGBLOB;
let $target_type= BLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= LONGBLOB;
let $target_type= MEDIUMBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= $if_is_lossy;
source extra/rpl_tests/check_type.inc;
let $source_type= LONGBLOB;
let $target_type= LONGBLOB;
let $source_value= 'aaa';
let $target_value= 'aaa';
let $can_convert= 1;
source extra/rpl_tests/check_type.inc;
# BUG#49836 (additional tests - GEOMETRY TYPE)
let $source_type = GEOMETRY;
let $target_type = BLOB;
let $source_value = PointFromText('POINT(10 10)');
let $target_value = PointFromText('POINT(10 10)');
let $can_convert = 0;
source extra/rpl_tests/check_type.inc;
let $source_type = BLOB;
let $target_type = GEOMETRY;
let $source_value = 'aaa';
let $target_value = 'aaa';
let $can_convert = 0;
source extra/rpl_tests/check_type.inc;
let $source_type = GEOMETRY;
let $target_type = GEOMETRY;
let $source_value = PointFromText('POINT(10 10)');
@@ -739,7 +875,8 @@ let $target_value= b'11111';
let $can_convert = $if_is_lossy;
source extra/rpl_tests/check_type.inc;
disable_warnings;
source include/reset_master_and_slave.inc;
enable_warnings;
enable_query_log;
enable_query_log;