summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorHe Zhenxing <zhenxing.he@sun.com>2009-10-09 16:54:48 +0800
committerHe Zhenxing <zhenxing.he@sun.com>2009-10-09 16:54:48 +0800
commit090985ffe650cd78e875282089749c54a22830fc (patch)
treecc59e28f5d3be5828ed18c95e1021204fe3e71a0 /sql/log_event.cc
parente94ae02cbcbf71157857a414a0c48bf60ea5f2fd (diff)
downloadmariadb-git-090985ffe650cd78e875282089749c54a22830fc.tar.gz
Bug#47323 : mysqlbinlog --verbose displays bad output when events contain subset of columns
Commit the non-NDB specific part (originated by frazer) to 5.1 mainline.
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index d7921ad3c27..ae7c4335f59 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -1852,6 +1852,7 @@ Rows_log_event::print_verbose_one_row(IO_CACHE *file, table_def *td,
{
const uchar *value0= value;
const uchar *null_bits= value;
+ uint null_bit_index= 0;
char typestr[64]= "";
value+= (m_width + 7) / 8;
@@ -1860,7 +1861,8 @@ Rows_log_event::print_verbose_one_row(IO_CACHE *file, table_def *td,
for (size_t i= 0; i < td->size(); i ++)
{
- int is_null= (null_bits[i / 8] >> (i % 8)) & 0x01;
+ int is_null= (null_bits[null_bit_index / 8]
+ >> (null_bit_index % 8)) & 0x01;
if (bitmap_is_set(cols_bitmap, i) == 0)
continue;
@@ -1897,6 +1899,8 @@ Rows_log_event::print_verbose_one_row(IO_CACHE *file, table_def *td,
}
my_b_printf(file, "\n");
+
+ null_bit_index++;
}
return value - value0;
}