docs: private void validateTableCompatibility(String theName, String otherName,
              Table theTable, Table otherTable, FailureMessage failureMessage) {
  
          if (theTable.getIsdred() != otherTable.getIsdred()) {
              failureMessage.addReason("To swap table " + theName + " with table " + otherName +
              " both tables must be DR enabled or both tables must not be DR enabled.");
          }
  
          if (theTable.getIsreplicated() != otherTable.getIsreplicated()) {
              failureMessage.addReason("one table is partitioned and the other is not");
          }
  
          if (theTable.getTuplelimit() != otherTable.getTuplelimit()) {
              failureMessage.addReason("the tables differ in the LIMIT PARTITION ROWS constraint");
          }
  
          if ((theTable.getMaterializer() != null ||
                  ! theTable.getMvhandlerinfo().isEmpty()) ||
                  (otherTable.getMaterializer() != null ||
                  ! otherTable.getMvhandlerinfo().isEmpty())) {
              failureMessage.addReason("one or both of the tables is actually a view");
          }
  
          StringBuilder viewNames = new StringBuilder();
          if (viewsDependOn(theTable, viewNames)) {
              failureMessage.addReason(theName + " is referenced in views " + viewNames.toString());
          }
  
          viewNames.setLength(0);
          if (viewsDependOn(otherTable, viewNames)) {
              failureMessage.addReason(otherName + " is referenced in views " + viewNames.toString());
          }
      }