示例#1
0
文件: builder.go 项目: jmptrader/tidb
// updateDBInfo clones a new DBInfo from old DBInfo, and update on the new one.
func (b *Builder) updateDBInfo(roDBInfo *model.DBInfo, oldTableID, newTableID int64) {
	newDbInfo := new(model.DBInfo)
	*newDbInfo = *roDBInfo
	newDbInfo.Tables = make([]*model.TableInfo, 0, len(roDBInfo.Tables))
	if newTableID != 0 {
		// All types except DropTable.
		newTblInfo := b.is.tables[newTableID].Meta()
		newDbInfo.Tables = append(newDbInfo.Tables, newTblInfo)
	}
	for _, tblInfo := range roDBInfo.Tables {
		if tblInfo.ID != oldTableID && tblInfo.ID != newTableID {
			newDbInfo.Tables = append(newDbInfo.Tables, tblInfo)
		}
	}
	b.is.schemas[newDbInfo.ID] = newDbInfo
}