From ca74b866b610debc3485bf1ca08a9b8e4f0d042f Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Sun, 11 Nov 2018 20:32:59 +0100 Subject: [PATCH] Allow to close the connection --- reader/reader.go | 9 ++++++++- reader/slave/slave_conn.go | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/reader/reader.go b/reader/reader.go index 74009b0..85531c4 100644 --- a/reader/reader.go +++ b/reader/reader.go @@ -33,7 +33,9 @@ func New(dsn string, sc slave.Config) (*Reader, error) { return nil, errors.Annotate(err, "establish slave connection") } - r := &Reader{conn: conn} + r := &Reader{ + conn: conn, + } r.initTableMap() if err := conn.DisableChecksum(); err != nil { @@ -129,6 +131,11 @@ func (r *Reader) ReadEvent() (*Event, error) { return &evt, err } +// Close underlying database connection. +func (r *Reader) Close() error { + return r.conn.Close() +} + func (r *Reader) initTableMap() { r.tableMap = make(map[uint64]binlog.TableDescription) } diff --git a/reader/slave/slave_conn.go b/reader/slave/slave_conn.go index d49231c..04dfa52 100644 --- a/reader/slave/slave_conn.go +++ b/reader/slave/slave_conn.go @@ -155,6 +155,11 @@ func (c *Conn) SetVar(name, val string) error { return c.conn.Exec(fmt.Sprintf("SET %s=%q", name, val)) } +// Close the connection. +func (c *Conn) Close() error { + return c.conn.Close() +} + func (c *Conn) runCmd(data []byte) error { err := c.conn.WritePacket(data) if err != nil {