今天正好有一些时间,花了几十分钟完整的走了一遍流程,给 TiDB 的 INFORMATION_SCHEMA 添加了一张名为 TIDB_SERVERS_INFO 的表,用来显示集群中所有活着的 tidb-server..., nil, nil},
{"TABLE_NAME", mysql.TypeVarchar, 64, mysql.NotNullFlag, nil, nil},
{"COLUMN_NAME",...mysql.TypeVarchar, 64, mysql.NotNullFlag, nil, nil},
{"HISTOGRAM", mysql.TypeJSON, 51, 0, nil, nil}...,
}
下一步需要如何填充数据返回给 TiDB 的 SQL Engine,我们注意到 infoschemaTable 这个类实现了 table.Table interface,很显然这个 interface...就是 TiDB 中对于 Table 获取数据/修改数据的接口,有关获取数据的方法是 IterRecords,我们只需要看到 IterRecords 中的实现就能知道这些系统表的数据是如何返回给 SQL