Finish rows parsing
This commit is contained in:
+8
-5
@@ -4,7 +4,6 @@ import (
|
||||
"github.com/juju/errors"
|
||||
"github.com/localhots/bocadillo/binlog"
|
||||
"github.com/localhots/bocadillo/schema"
|
||||
"github.com/localhots/pretty"
|
||||
)
|
||||
|
||||
// Reader ...
|
||||
@@ -20,6 +19,8 @@ type Reader struct {
|
||||
type Event struct {
|
||||
Header binlog.EventHeader
|
||||
Body []byte
|
||||
Table *binlog.TableDescription
|
||||
Rows *binlog.RowsEvent
|
||||
}
|
||||
|
||||
// NewReader ...
|
||||
@@ -73,13 +74,13 @@ func (r *Reader) ReadEvent() (*Event, error) {
|
||||
if err = fde.Decode(evt.Body); err == nil {
|
||||
r.format = fde.FormatDescription
|
||||
}
|
||||
pretty.Println(evt.Header.Type.String(), r.format)
|
||||
// pretty.Println(evt.Header.Type.String(), r.format)
|
||||
case binlog.EventTypeRotate:
|
||||
var re binlog.RotateEvent
|
||||
if err = re.Decode(evt.Body, r.format); err == nil {
|
||||
r.state = re.NextFile
|
||||
}
|
||||
pretty.Println(evt.Header.Type.String(), r.state)
|
||||
// pretty.Println(evt.Header.Type.String(), r.state)
|
||||
case binlog.EventTypeTableMap:
|
||||
var tme binlog.TableMapEvent
|
||||
if err = tme.Decode(evt.Body, r.format); err == nil {
|
||||
@@ -102,9 +103,11 @@ func (r *Reader) ReadEvent() (*Event, error) {
|
||||
if !ok {
|
||||
return nil, errors.New("Unknown table ID")
|
||||
}
|
||||
if err = re.Decode(evt.Body, r.format, td); err == nil {
|
||||
pretty.Println(re)
|
||||
if err = re.Decode(evt.Body, r.format, td); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
evt.Table = &td
|
||||
evt.Rows = &re
|
||||
case binlog.EventTypeXID:
|
||||
// TODO: Add support
|
||||
case binlog.EventTypeGTID:
|
||||
|
||||
@@ -2,7 +2,6 @@ package reader
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
@@ -101,7 +100,6 @@ func (c *SlaveConn) RegisterSlave() error {
|
||||
// buf.WriteUint32(replicationRank)
|
||||
// buf.WriteUint32(masterID)
|
||||
|
||||
fmt.Println(hex.Dump(buf.Bytes()))
|
||||
return c.runCmd(buf.Bytes())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user