code: func (b *Builder) copySchemaTables(dbName string) *model.DBInfo {
  	oldSchemaTables := b.is.schemaMap[dbName]
  	newSchemaTables := &schemaTables{
  		dbInfo: oldSchemaTables.dbInfo.Copy(),
  		tables: make(map[string]table.Table, len(oldSchemaTables.tables)),
  	}
  	for k, v := range oldSchemaTables.tables {
  		newSchemaTables.tables[k] = v
  	}
  	b.is.schemaMap[dbName] = newSchemaTables
  	return newSchemaTables.dbInfo
  }
docs: // copySchemaTables creates a new schemaTables instance when a table in the database has changed.
  // It also does modifications on the new one because old schemaTables must be read-only.