private List<ExprNodeDesc> createDerivatives(final Operator<?> currentOp,
        final ExprNodeDesc currentNode, final ExprNodeDesc sourceKey) throws SemanticException {
      List<ExprNodeDesc> resultExprs = new ArrayList<>();
      return createDerivatives(resultExprs, currentOp, currentNode, sourceKey) ? resultExprs : new ArrayList<>();
    }
creates synthetic predicates that represent "IN (keylist other table)"
ql/src/java/org/apache/hadoop/hive/ql/ppd/SyntheticJoinPredicate.java