code: func joinKeysMatchIndex(keys, indexCols []*expression.Column, colLengths []int) []int {
  	keyOff2IdxOff := make([]int, len(keys))
  	for i := range keyOff2IdxOff {
  		keyOff2IdxOff[i] = -1
  	}
  	// There should be at least one column in join keys which can match the index's column.
  	matched := false
  	tmpSchema := expression.NewSchema(keys...)
  	for i, idxCol := range indexCols {
  		if colLengths[i] != types.UnspecifiedLength {
  			continue
  		}
  		keyOff := tmpSchema.ColumnIndex(idxCol)
  		if keyOff == -1 {
  			continue
  		}
  		matched = true
  		keyOff2IdxOff[keyOff] = i
  	}
  	if !matched {
  		return nil
  	}
  	return keyOff2IdxOff
  }
docs: // joinKeysMatchIndex checks whether the join key is in the index.
  // It returns a slice a[] what a[i] means keys[i] is related with indexCols[a[i]], -1 for no matching column.
  // It will return nil if there's no column that matches index.