@Override
  public boolean isSame(OperatorDesc other) {
    if (getClass().getName().equals(other.getClass().getName())) {
      FilterDesc otherDesc = (FilterDesc) other;
      return Objects.equals(getPredicateString(), otherDesc.getPredicateString()) &&
          Objects.equals(getSampleDescExpr(), otherDesc.getSampleDescExpr()) &&
          getIsSamplingPred() == otherDesc.getIsSamplingPred();
    }
    return false;
  }
Some filters are generated or implied, which means it is not in the query.
It is added by the analyzer. For example, when we do an inner join, we add
filters to exclude those rows with null join key values.
ql/src/java/org/apache/hadoop/hive/ql/plan/FilterDesc.java