MXS-1536: Add Annotate_rows event processing
The Annotate_rows events were not processed which caused the following table map event to be ignored. Also removed a false debug assertion. The byte count can be zero and the pointer is not guaranteed to point to anything valid.
This commit is contained in:
@ -665,6 +665,13 @@ avro_binlog_end_t avro_read_all_events(AVRO_INSTANCE *router)
|
||||
snprintf(next_file, sizeof(next_file), BINLOG_NAMEFMT, router->fileroot,
|
||||
blr_file_get_next_binlogname(router->binlog_name));
|
||||
}
|
||||
else if (hdr.event_type == MARIADB_ANNOTATE_ROWS_EVENT)
|
||||
{
|
||||
MXS_INFO("Annotate_rows_event: %.*s", hdr.event_size - BINLOG_EVENT_HDR_LEN, ptr);
|
||||
pos += original_size;
|
||||
router->current_pos = pos;
|
||||
continue;
|
||||
}
|
||||
else if (hdr.event_type == TABLE_MAP_EVENT)
|
||||
{
|
||||
handle_table_map_event(router, &hdr, ptr);
|
||||
|
@ -588,7 +588,6 @@ uint8_t* process_row_event_data(TABLE_MAP *map, TABLE_CREATE *create, avro_value
|
||||
}
|
||||
|
||||
MXS_INFO("[%ld] CHAR: field: %d bytes, data: %d bytes", i, field_length, bytes);
|
||||
ss_dassert(bytes || *ptr == '\0');
|
||||
char str[bytes + 1];
|
||||
memcpy(str, ptr, bytes);
|
||||
str[bytes] = '\0';
|
||||
|
Reference in New Issue
Block a user