code: func isColEqCorCol(filter expression.Expression) *expression.Column {
  	f, ok := filter.(*expression.ScalarFunction)
  	if !ok || f.FuncName.L != ast.EQ {
  		return nil
  	}
  	if c, ok := f.GetArgs()[0].(*expression.Column); ok {
  		if _, ok := f.GetArgs()[1].(*expression.CorrelatedColumn); ok {
  			return c
  		}
  	}
  	if c, ok := f.GetArgs()[1].(*expression.Column); ok {
  		if _, ok := f.GetArgs()[0].(*expression.CorrelatedColumn); ok {
  			return c
  		}
  	}
  	return nil
  }
docs: // isColEqCorCol checks if the expression is a eq function that one side is correlated column and another is column.
  // If so, it will return the column's reference. Otherwise return nil instead.