github.com/unionj-cloud/go-doudou/v2@v2.3.5/toolkit/gormgen/internal/model/tbl_index.go (about) 1 package model 2 3 import "gorm.io/gorm" 4 5 // Index table index info 6 type Index struct { 7 gorm.Index 8 Priority int32 `gorm:"column:SEQ_IN_INDEX"` 9 } 10 11 // GroupByColumn group columns 12 func GroupByColumn(indexList []gorm.Index) map[string][]*Index { 13 columnIndexMap := make(map[string][]*Index, len(indexList)) 14 if len(indexList) == 0 { 15 return columnIndexMap 16 } 17 18 for _, idx := range indexList { 19 if idx == nil { 20 continue 21 } 22 for i, col := range idx.Columns() { 23 columnIndexMap[col] = append(columnIndexMap[col], &Index{ 24 Index: idx, 25 Priority: int32(i + 1), 26 }) 27 } 28 } 29 return columnIndexMap 30 }