public static void decomposeAndValidateConjunction(RexNode rexPredicate, List<RexNode> conjunctionList) {
    if (rexPredicate == null || rexPredicate.isAlwaysTrue()) {
      return;
    }

    if (rexPredicate.isA(SqlKind.AND)) {
      for (RexNode operand : ((RexCall) rexPredicate).getOperands()) {
        decomposeAndValidateConjunction(operand, conjunctionList);
      }
    } else if (rexPredicate.isA(SqlKind.EQUALS)) {
      conjunctionList.add(rexPredicate);
    } else {
      throw new SamzaException("Only equi-joins and AND operator is supported in join condition.");
    }
  }
Traverse the tree of expression and validate. Only allowed predicate is conjunction of exp1 = exp2
@param rexPredicate Rex Condition
@param conjunctionList result container to pull result form recursion stack.
samza-sql/src/main/java/org/apache/samza/sql/translator/JoinTranslator.java