func()

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
}