diff options
author | cbell/Chuck@mysql_cab_desk. <> | 2007-07-30 12:55:26 -0400 |
---|---|---|
committer | cbell/Chuck@mysql_cab_desk. <> | 2007-07-30 12:55:26 -0400 |
commit | 11fc097e8df5ffb79fd20a778ad7220e92633d1b (patch) | |
tree | 782b6159eda9477210a258d9ddbb402547a7819e /sql/rpl_utility.cc | |
parent | 0950f6435c4a104b41d864b9f31ce8197ffdb947 (diff) | |
download | mariadb-git-11fc097e8df5ffb79fd20a778ad7220e92633d1b.tar.gz |
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.
Diffstat (limited to 'sql/rpl_utility.cc')
-rw-r--r-- | sql/rpl_utility.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/rpl_utility.cc b/sql/rpl_utility.cc index 2a124c7b14e..279575f33ce 100644 --- a/sql/rpl_utility.cc +++ b/sql/rpl_utility.cc @@ -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; } |