code: func (t *TableMap) AddIndex(name string, idxtype string, columns []string) *IndexMap {
  	// check if we have a index with this name already
  	for _, idx := range t.indexes {
  		if idx.IndexName == name {
  			return idx
  		}
  	}
  	for _, icol := range columns {
  		if res := t.ColMap(icol); res == nil {
  			e := fmt.Sprintf("No ColumnName in table %s to create index on", t.TableName)
  			panic(e)
  		}
  	}
  
  	idx := &IndexMap{IndexName: name, Unique: false, IndexType: idxtype, columns: columns}
  	t.indexes = append(t.indexes, idx)
  	t.ResetSql()
  	return idx
  }
docs: // AddIndex registers the index with gorp for specified table with given parameters.
  // This operation is idempotent. If index is already mapped, the
  // existing *IndexMap is returned
  // Function will panic if one of the given for index columns does not exists
  //
  // Automatically calls ResetSql() to ensure SQL statements are regenerated.
  //