static Boolean evaluateExprOnCell(List<String> skewedCols, List<String> cell,
      ExprNodeDesc pruner, List<List<String>> uniqSkewedValues) throws SemanticException {
    return recursiveExpr(pruner, skewedCols, cell, uniqSkewedValues);
  }
1. Walk through the tree to decide value
1.1 true means the element matches the expression tree
1.2 false means the element doesn't match the expression tree
1.3 unknown means not sure if the element matches the expression tree

Example:
skewed column: C1, C2
cell: (1,a) , (1,b) , (1,c) , (1,other), (2,a), (2,b) , (2,c), (2,other), (other,a), (other,b),
(other,c), (other,other)

* Expression Tree : ((c1=1) and (c2=a)) or ( (c1=3) or (c2=b))

or
/ \
and or
/ \ / \
c1=1 c2=a c1=3 c2=b
@throws SemanticException
ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPrunerUtils.java