docs: public static Optional<Symbol> filterOrRewrite(Collection<Symbol> columns, Collection<JoinNode.EquiJoinClause> equalities, Symbol column)
      {
          // symbol is exposed directly, so no translation needed
          if (columns.contains(column)) {
              return Optional.of(column);
          }
  
          // if the column is part of the equality conditions and its counterpart
          // is exposed, use that, instead
          for (JoinNode.EquiJoinClause equality : equalities) {
              if (equality.getLeft().equals(column) && columns.contains(equality.getRight())) {
                  return Optional.of(equality.getRight());
              }
              else if (equality.getRight().equals(column) && columns.contains(equality.getLeft())) {
                  return Optional.of(equality.getLeft());
              }
          }
  
          return Optional.empty();
      }