1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +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.
This commit is contained in:
cbell/Chuck@mysql_cab_desk.
2007-07-30 12:55:26 -04:00
parent 0950f6435c
commit 11fc097e8d
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;
}