code: func (o *outerJoinEliminator) isInnerJoinKeysContainIndex(innerPlan LogicalPlan, joinKeys *expression.Schema) (bool, error) {
  	ds, ok := innerPlan.(*DataSource)
  	if !ok {
  		return false, nil
  	}
  	for _, path := range ds.possibleAccessPaths {
  		if path.isTablePath {
  			continue
  		}
  		idx := path.index
  		if !idx.Unique {
  			continue
  		}
  		joinKeysContainIndex := true
  		for _, idxCol := range idx.Columns {
  			columnName := &ast.ColumnName{Schema: ds.DBName, Table: ds.tableInfo.Name, Name: idxCol.Name}
  			c, err := joinKeys.FindColumn(columnName)
  			if err != nil {
  				return false, err
  			}
  			if c == nil {
  				joinKeysContainIndex = false
  				break
  			}
  		}
  		if joinKeysContainIndex {
  			return true, nil
  		}
  	}
  	return false, nil
  }
docs: // check whether one of index sets is contained by inner join index