private static Boolean coreComparisonInEqualNode(String constantValueInFilter,
      String cellValueInPosition, List<String> uniqSkewedValuesInPosition) {
   Boolean result;
    // Compare cell value with constant value in filter
    // 1 if they match and cell value isn't other, return true
    // 2 if they don't match but cell is other and value in filter is not skewed value,
    //   return unknown. why not true? true is not enough. since not true is false,
    //   but not unknown is unknown.
    //   For example, skewed column C, skewed value 1, 2. clause: where not ( c =3)
    //   cell is other, evaluate (not(c=3)).
    //   other to (c=3), if ture. not(c=3) will be false. but it is wrong skip default dir
    //   but, if unknown. not(c=3) will be unknown. we will choose default dir.
    // 3 all others, return false
    if (cellValueInPosition.equals(constantValueInFilter)
        && !cellValueInPosition.equals(ListBucketingPrunerUtils.HIVE_LIST_BUCKETING_DEFAULT_KEY)) {
      result = Boolean.TRUE;
    } else if (cellValueInPosition.equals(ListBucketingPrunerUtils.HIVE_LIST_BUCKETING_DEFAULT_KEY)
        && !uniqSkewedValuesInPosition.contains(constantValueInFilter)) {
      result = null;
    } else {
      result = Boolean.FALSE;
    }
    return result;
  }
Compare
@param constantValueInFilter
@param cellValueInPosition
@param uniqSkewedValuesInPosition
@return
ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPrunerUtils.java