diff --git a/binlog/event_rows.go b/binlog/event_rows.go index b7c00c0..255e72f 100644 --- a/binlog/event_rows.go +++ b/binlog/event_rows.go @@ -9,7 +9,6 @@ import ( "github.com/localhots/bocadillo/mysql" "github.com/localhots/bocadillo/tools" - "github.com/localhots/pretty" ) // RowsEvent contains a Rows Event. @@ -253,16 +252,14 @@ func (e *RowsEvent) decodeValue(buf *tools.Buffer, ct mysql.ColumnType, meta uin buf.Skip(n) return v case mysql.ColumnTypeSet: - length = int(meta & 0xFF) nbits := length * 8 v, n := mysql.DecodeBit(buf.Cur(), nbits, length) - pretty.Println("Decoding set", buf.Cur(), nbits, length, "-->", v) buf.Skip(n) return v // Stuff case mysql.ColumnTypeEnum: - return buf.ReadVarLen64(int(meta & 0xFF)) + return buf.ReadVarLen64(length) // Unsupported case mysql.ColumnTypeDecimal: diff --git a/reader/reader.go b/reader/reader.go index 402835b..2838576 100644 --- a/reader/reader.go +++ b/reader/reader.go @@ -56,7 +56,6 @@ func (r *Reader) ReadEvent() (*Event, error) { if err := evt.Header.Decode(connBuff, r.format); err != nil { return nil, errors.Annotate(err, "decode event header") } - if evt.Header.NextOffset > 0 { r.state.Offset = uint64(evt.Header.NextOffset) } @@ -71,26 +70,29 @@ func (r *Reader) ReadEvent() (*Event, error) { switch evt.Header.Type { case binlog.EventTypeFormatDescription: var fde binlog.FormatDescriptionEvent - err = fde.Decode(evt.Buffer) + err := fde.Decode(evt.Buffer) if err != nil { return nil, errors.Annotate(err, "decode format description event") } r.format = fde.FormatDescription evt.Format = fde.FormatDescription + case binlog.EventTypeRotate: var re binlog.RotateEvent - err = re.Decode(evt.Buffer, r.format) + err := re.Decode(evt.Buffer, r.format) if err != nil { return nil, errors.Annotate(err, "decode rotate event") } r.state = re.NextFile + case binlog.EventTypeTableMap: var tme binlog.TableMapEvent - err = tme.Decode(evt.Buffer, r.format) + err := tme.Decode(evt.Buffer, r.format) if err != nil { return nil, errors.Annotate(err, "decode table map event") } r.tableMap[tme.TableID] = tme.TableDescription + case binlog.EventTypeWriteRowsV0, binlog.EventTypeWriteRowsV1, binlog.EventTypeWriteRowsV2, @@ -108,6 +110,7 @@ func (r *Reader) ReadEvent() (*Event, error) { return nil, errors.New("Unknown table ID") } evt.Table = &td + case binlog.EventTypeQuery: // Can be decoded by the receiver case binlog.EventTypeXID: