code: func isColEqCorColOrConstant(filter expression.Expression, col *expression.Column) bool {
  	f, ok := filter.(*expression.ScalarFunction)
  	if !ok || f.FuncName.L != ast.EQ {
  		return false
  	}
  	if c, ok := f.GetArgs()[0].(*expression.Column); ok {
  		if _, ok := f.GetArgs()[1].(*expression.Constant); ok {
  			if col.Equal(nil, c) {
  				return true
  			}
  		}
  		if _, ok := f.GetArgs()[1].(*expression.CorrelatedColumn); ok {
  			if col.Equal(nil, c) {
  				return true
  			}
  		}
  	}
  	if c, ok := f.GetArgs()[1].(*expression.Column); ok {
  		if _, ok := f.GetArgs()[0].(*expression.Constant); ok {
  			if col.Equal(nil, c) {
  				return true
  			}
  		}
  		if _, ok := f.GetArgs()[0].(*expression.CorrelatedColumn); ok {
  			if col.Equal(nil, c) {
  				return true
  			}
  		}
  	}
  	return false
  }
docs: // getEqOrInColOffset checks if the expression is a eq function that one side is constant or correlated column
  // and another is column.