1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

WL#3915 : (NDB) master's cols > slave

Corrective patch to fix test failures in pushbuild and add assertions
to help debug rpl_extraColmaster test failures.


mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
  WL#3915 : (NDB) master's cols > slave
  
  Change test to omit the port numbers in the result file.
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
  WL#3915 : (NDB) master's cols > slave
  
  Corrected result file.
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
  WL#3915 : (NDB) master's cols > slave
  
  Corrected result file.
sql/rpl_utility.cc:
  WL#3915 : (NDB) master's cols > slave
  
  Added assertions to assist in debugging.
This commit is contained in:
unknown
2007-07-30 12:55:26 -04:00
parent aee08c3d06
commit d605bc5608
4 changed files with 27 additions and 18 deletions

View File

@ -48,8 +48,12 @@ uint32 table_def::calc_field_size(uint col, uchar *master_data)
else
{
length= m_field_metadata[col] & 0x00ff;
DBUG_ASSERT(length > 0);
if (length > 255)
{
DBUG_ASSERT(uint2korr(master_data) > 0);
length= uint2korr(master_data) + 2;
}
else
length= (uint) *master_data + 1;
}
@ -93,13 +97,17 @@ uint32 table_def::calc_field_size(uint col, uchar *master_data)
{
uint from_len= (m_field_metadata[col] >> 8U) & 0x00ff;
uint from_bit_len= m_field_metadata[col] & 0x00ff;
DBUG_ASSERT(from_len >= 0 && from_bit_len >= 0 && from_bit_len <= 7);
length= from_len + ((from_bit_len > 0) ? 1 : 0);
break;
}
case MYSQL_TYPE_VARCHAR:
{
length= m_field_metadata[col] > 255 ? 2 : 1; // c&p of Field_varstring::data_length()
DBUG_ASSERT(uint2korr(master_data) > 0);
length+= length == 1 ? (uint32) *master_data : uint2korr(master_data);
break;
}
case MYSQL_TYPE_TINY_BLOB:
case MYSQL_TYPE_MEDIUM_BLOB:
case MYSQL_TYPE_LONG_BLOB:
@ -113,6 +121,7 @@ uint32 table_def::calc_field_size(uint col, uchar *master_data)
default:
length= -1;
}
DBUG_ASSERT(length >= 0);
return length;
}