code: protected static void applyTransitiveEquivalence(List<AbstractExpression> outerTableExprs,
              List<AbstractExpression> innerTableExprs,
              List<AbstractExpression> innerOuterTableExprs)
      {
          List<AbstractExpression> simplifiedOuterExprs = applyTransitiveEquivalence(innerTableExprs, innerOuterTableExprs);
          List<AbstractExpression> simplifiedInnerExprs = applyTransitiveEquivalence(outerTableExprs, innerOuterTableExprs);
          outerTableExprs.addAll(simplifiedOuterExprs);
          innerTableExprs.addAll(simplifiedInnerExprs);
      }
docs: Apply implied transitive constant filter to join expressions
  outer.partkey = ? and outer.partkey = inner.partkey is equivalent to
  outer.partkey = ? and inner.partkey = ?
  @param innerTableExprs inner table expressions
  @param outerTableExprs outer table expressions
  @param innerOuterTableExprs inner-outer tables expressions