func (d *Driver) indexName(m driver.Model, idx *index.Index) (string, error) { if len(idx.Fields) == 0 { return "", fmt.Errorf("index on %v has no fields", m.Type()) } buf := getBuffer() buf.WriteString(m.Table()) for _, v := range idx.Fields { dbName, _, err := m.Map(v) if err != nil { return "", err } buf.WriteByte('_') // dbName is quoted and includes the table name // extract the unquoted field name. buf.WriteString(unquote(dbName)) if DescField(idx, v) { buf.WriteString("_desc") } } s := buf.String() putBuffer(buf) return s, nil }