@@ -37,6 +37,7 @@ const (
3737 catalogVal = "def"
3838 tableProfiling = "PROFILING"
3939 tablePartitions = "PARTITIONS"
40+ tableKeyColumm = "KEY_COLUMN_USAGE"
4041)
4142
4243type columnInfo struct {
@@ -197,6 +198,21 @@ var collationsCols = []columnInfo{
197198 {"SORTLEN" , mysql .TypeLonglong , 3 , 0 , nil , nil },
198199}
199200
201+ var keyColumnUsageCols = []columnInfo {
202+ {"CONSTRAINT_CATALOG" , mysql .TypeVarchar , 512 , mysql .NotNullFlag , nil , nil },
203+ {"CONSTRAINT_SCHEMA" , mysql .TypeVarchar , 64 , mysql .NotNullFlag , nil , nil },
204+ {"CONSTRAINT_NAME" , mysql .TypeVarchar , 64 , mysql .NotNullFlag , nil , nil },
205+ {"TABLE_CATALOG" , mysql .TypeVarchar , 512 , mysql .NotNullFlag , nil , nil },
206+ {"TABLE_SCHEMA" , mysql .TypeVarchar , 64 , mysql .NotNullFlag , nil , nil },
207+ {"TABLE_NAME" , mysql .TypeVarchar , 64 , mysql .NotNullFlag , nil , nil },
208+ {"COLUMN_NAME" , mysql .TypeVarchar , 64 , mysql .NotNullFlag , nil , nil },
209+ {"ORDINAL_POSITION" , mysql .TypeLonglong , 10 , mysql .NotNullFlag , nil , nil },
210+ {"POSITION_IN_UNIQUE_CONSTRAINT" , mysql .TypeLonglong , 10 , 0 , nil , nil },
211+ {"REFERENCED_TABLE_SCHEMA" , mysql .TypeVarchar , 64 , 0 , nil , nil },
212+ {"REFERENCED_TABLE_NAME" , mysql .TypeVarchar , 64 , 0 , nil , nil },
213+ {"REFERENCED_COLUMN_NAME" , mysql .TypeVarchar , 64 , 0 , nil , nil },
214+ }
215+
200216// See https://dev.mysql.com/doc/refman/5.7/en/partitions-table.html
201217var partitionsCols = []columnInfo {
202218 {"TABLE_CATALOG" , mysql .TypeVarchar , 512 , 0 , nil , nil },
@@ -481,6 +497,7 @@ var tableNameToColumns = map[string]([]columnInfo){
481497 tableFiles : filesCols ,
482498 tableProfiling : profilingCols ,
483499 tablePartitions : partitionsCols ,
500+ tableKeyColumm : keyColumnUsageCols ,
484501}
485502
486503func createMemoryTable (meta * model.TableInfo , alloc autoid.Allocator ) (table.Table , error ) {
0 commit comments