in changelog/mysql.go [251:287]
func (b *mysqlReader) removeDeletedTables() (count uint) {
var s string
for dbn := range b.tables {
for tbn := range b.tables[dbn] {
for svc := range b.tables[dbn][tbn] {
for i := 0; i < len(b.tables[dbn][tbn][svc]); {
t := b.tables[dbn][tbn][svc][i]
if t.dead {
b.log.Infof("Table with id %v removed from binlog reader", t.id)
err := t.producer.Close()
log.EL(b.log, err)
s := b.tables[dbn][tbn][svc]
s[i] = s[len(s)-1]
s[len(s)-1] = nil
b.tables[dbn][tbn][svc] = s[:len(s)-1]
} else {
t.dead = true
count++
s += fmt.Sprintf("%v,", t.id)
i++
}
}
if len(b.tables[dbn][tbn][svc]) == 0 {
delete(b.tables[dbn][tbn], svc)
}
}
if len(b.tables[dbn][tbn]) == 0 {
delete(b.tables[dbn], tbn)
}
}
if len(b.tables[dbn]) == 0 {
delete(b.tables, dbn)
}
}
b.log.Debugf("Working on %v tables with ids: %s", count, s)
return
}