code: public boolean canMergeRemainderOrdering(OrderingScore<S> other) {
          if (this == other || (getHandledCount() == 0 && other.getHandledCount() == 0)) {
              return true;
          }
  
          if (isIndexClustered() == other.isIndexClustered()
              && getIndexPropertyCount() == other.getIndexPropertyCount()
              && shouldReverseOrder() == other.shouldReverseOrder()
              && getHandledOrdering().equals(other.getHandledOrdering()))
          {
              // The remainder orderings cannot conflict.
              OrderingList<S> thisRemainderOrdering = getRemainderOrdering();
              OrderingList<S> otherRemainderOrdering = other.getRemainderOrdering();
  
              int size = Math.min(thisRemainderOrdering.size(), otherRemainderOrdering.size());
              for (int i=0; i<size; i++) {
                  if (!thisRemainderOrdering.get(i).equals(otherRemainderOrdering.get(i))) {
                      return false;
                  }
              }
  
              return true;
          }
  
          return false;
      }
docs: Returns true if the given score uses an index exactly the same as this
  one. The only allowed differences are in the count of remainder
  orderings.